如何对存储在法线贴图的alpha通道中的高度贴图进行采样?

时间:2017-11-16 08:37:15

标签: directx directx-9 directx-10 heightmap

  

错误X3523:不在dx9兼容模式下禁用DX9样式的内在函数

如何在dx10中使用tex2Dgrad()函数?

1 个答案:

答案 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详细了解差异。