VertexFactoryGetPerPixelTangentBasis
先看下计算Tangent到Local空间的Shader代码
float3x3 VertexFactoryGetPerPixelTangentBasis(FVertexFactoryInterpolantsVSToPS Interpolants)
{
float3x3 Result;
#if PIXELSHADER || RAYHITGROUPSHADER || COMPUTESHADER
#if FEATURE_LEVEL >= FEATURE_LEVEL_SM4
float4 SampleValue = Texture2DSample(LandscapeParameters.NormalmapTexture, LandscapeParameters.NormalmapTextureSampler, Interpolants.WeightHeightMapTexCoord.zw);
#else
float4 SampleValue = Texture2DSample(LandscapeParameters.NormalmapTexture, LandscapeParameters.NormalmapTextureSampler, Interpolants.WeightMapTexCoord);
#endif
#if WEBGL
float2 SampleNormal = float2(SampleValue.b, SampleValue.a) * float2(2.0,2.0) - float2(1.0,1.0);
#else
float2 SampleNormal = float2(SampleValue.b, SampleValue.a) * float2(2.0,2.0) - float2(1.0,1.0);
#endif
float3 WorldNormal = floa