当前位置: 代码迷 >> 综合 >> Inverse transpose matrix
  详细解决方案

Inverse transpose matrix

热度:22   发布时间:2024-01-17 20:28:44.0
对normal进行变换不能直接乘以变换矩阵,必须乘以inverse transpose matrix

给定一个顶点的Normal n,以及过该点的切平面上的一个向量u,且有变换矩阵T。u,n是行向量,T是行矩阵,可知满足如下条件[1]


对于DX,由于使用行矩阵作为变换矩阵,所以直接乘以inverse transpose matrix就可以。对于OpenGL,由于使用列矩阵,所以我们还需要做一下转置。
假设U是列矩阵,且满足


,于是有


所以对于OpenGL,其实需要计算transpose inverse matrix,但是我们注意到,对于可逆矩阵A有,


所以综合上面两个结论,我们可知,对于OpenGL,最后还是可以使用inverse transpose matrix来计算变换后的normal。


Reference:

[1] Geometric Tools for Computer Graphics

  相关解决方案