3D数学之法线变换

一般的变换矩阵不能变换法线?

一般来说,变换矩阵M_{A\rightarrow B}可以把顶点和矢量从坐标空间\boldsymbol{A}变换到坐标空间\boldsymbol{B},但是不能直接使用M_{A\rightarrow B}变换法线。

 

推导法线变换矩阵:

假如在坐标空间\boldsymbol{A}下有切线T_{A}和法线N_{A},坐标空间\boldsymbol{B}下有切线T_{B}和法线N_{B}

有如下等式成立:

  • T_{A}\cdot N_{A} = 0
  • T_{B} = M_{A\rightarrow B} T_{A}
  • T_{B}\cdot N_{B} = 0

假设有法线变换矩阵G_{A\rightarrow B},满足N_{B} = G_{A\rightarrow B} N_{A},联系上面成立的等式有:

T_{B}\cdot N_{B} = \left ( M_{A\rightarrow B}T_{A} \right )\cdot \left ( G_{A\rightarrow B}N_{A} \right )=0,有如下推导:

T_{B}\cdot N_{B} = \left ( M_{A\rightarrow B}T_{A} \right )\left ( G_{A\rightarrow B}N_{A} \right )=\left ( M_{A\rightarrow B}T_{A} \right )^{T}\left ( G_{A\rightarrow B}N_{A} \right ) = T_{A}^{T}M_{A\rightarrow B}^{T}G_{A\rightarrow B}N_{A}=T_{A}^{T}\left ( M_{A\rightarrow B}^{T}G_{A\rightarrow B} \right )N_{A}=0

可知M_{A\rightarrow B}^{T}G_{A\rightarrow B} = I时等式成立,从而G_{A\rightarrow B} = \left (M_{A\rightarrow B}^{-1} \right )^{T},即原变换矩阵的逆转置矩阵。

特别的,假如M_{A\rightarrow B}为正交矩阵,有G_{A\rightarrow B} = M_{A\rightarrow B}

 

结论

变换矩阵为正交矩阵时才可以直接变换法线,否则法线的变换矩阵为原变换矩阵的逆转置矩阵。

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部