错误 X3523:未处于 DX9 兼容模式时禁用 DX9 样式内部函数
如何使用DX10中的tex2Dgrad()
功能?
您可以打开反向兼容模式(即使用带有FXC.EXE
命令行/Gec
开关或与D3DCompile API一起使用D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
标志(。
或者,不要使用 DirectX 9 样式tex2Dgrad()
固有样式,而是使用 Direct3D 10/着色器模型 4 引入的"纹理对象"语法:
Texture2D <float4> MyTex : t0;
Sampler MySampler : s0;
float4 value = MyTex.SampleGrad(MySampler, TexCoord, dx, dy);
请参阅 MSDN
请注意,根本没有理由使用 Direct3D 10.x API。你应该使用 Direct3D 11,它支持更广泛的硬件、更清晰的线程安全语法、支持其他功能,并且具有一组更好的支持实用工具库。Direct3D 11 在包含 Direct3D 10 的所有受支持平台上都可用。请参阅此ppt从Gamefest 2010,了解差异的详细演练。