DirectX 12 – Normal Mapping 法线映射

19.5 切线空间与物体本地空间的转换

现在我们已经拥有了每个定点的互相垂直的三个向量TBN。此外,这三个向量位于位于物体本地坐标系。因此,我们可以通过以下矩阵将切线空间转换为物体本地空间:

由于矩阵中的向量互相垂直,该矩阵的逆矩阵就是其转置矩阵。所以,从物体本地空间转换为贴图空间的矩阵为:

在我们的shader程序中,我们将会把位于切线空间的法线向量转换至世界空间,用于计算光照效果。一种方法是将法线向量由切线空间转换为物体本地空间,之后再使用世界矩阵将其转换为世界空间:

根据矩阵的乘法法则,我们也可以将等式转换为:

其中,T’=T·M(world)B’=B·M(world)N’=N·M(world)。由于我们只需要转换向量而不是坐标点,所以使用3×3的矩阵即可。4×4矩阵的第四行是表示坐标点的位移,而我们并不需要移动向量。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据