How to sample height map which is stored in the alpha channel of the normal map?

262 Views Asked by At

error X3523: DX9-style intrinsics are disabled when not in dx9 compatibility mode

how to use the tex2Dgrad() function in dx10?

1

There are 1 best solutions below

0
Chuck Walbourn On

You could turn on the back-compat mode (i.e. use /Gec switch with the FXC.EXE command-line or the D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY flag with the D3DCompile APIs).

Alternatively, instead of using the DirectX 9 style tex2Dgrad() intrinsic, use the 'Texture object' syntax that was introduced with Direct3D 10 / Shader Model 4:

Texture2D <float4> MyTex : t0;
Sampler MySampler : s0;

float4 value = MyTex.SampleGrad(MySampler, TexCoord, dx, dy);

See MSDN

Note that there is no reason to use the Direct3D 10.x API at all. You should be using Direct3D 11 which supports a broader range of hardware, has clearer thread-safety syntax, supports additional features, and has a much better supported set of utility libraries. Direct3D 11 is available on all supported platforms that included Direct3D 10. See this ppt from Gamefest 2010 for a detailed walkthrough of the differences.