错误X3523:不在dx9兼容模式下禁用DX9样式的内在函数
如何在dx10中使用tex2Dgrad()
函数?
答案 0 :(得分:1)
您可以打开反算法模式(即使用/Gec
命令行使用FXC.EXE
开关或使用D3DCompile API使用D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
标志。
或者,不使用DirectX 9样式tex2Dgrad()
内在函数,而是使用Direct3D 10 / Shader Model 4引入的“纹理对象”语法:
Texture2D <float4> MyTex : t0;
Sampler MySampler : s0;
float4 value = MyTex.SampleGrad(MySampler, TexCoord, dx, dy);
请参阅MSDN
请注意,根本没有理由使用Direct3D 10.x API。您应该使用支持broader range of hardware的Direct3D 11,具有更清晰的线程安全语法,支持其他功能,并且具有更好的受支持的utility libraries集。 Direct3D 11适用于包含Direct3D 10的所有supported platforms。请参阅Gamefest 2010中的ppt详细了解差异。