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}

 

结论

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值