最初我认为这只是意味着最后一列被简单地丢弃,但显然当我进行这样的转换时,我得到了不同的结果,而不是仅仅声明一个 3x2 矩阵。
float3x3 TBN = float3x3(IN.tangent, IN.binormal, IN.normal);
float3x2 TB = float3x2(IN.tangent, IN.binormal);
half2 vNormalTBN = mul(sampledNormal, (float3x2)TBN);
half2 vNormalTB = mul(sampledNormal, TB);