[图形学]法线变换矩阵推导

  • 在顶点着色器中,对顶点从模型空间转换到世界空间的矩阵用M来表示的话,那对法线是否也能同样进行转换呢?

答案要看你的M里面涉及了怎样的平移、旋转和缩放。

思考过程

  • 我们先要知道顶点是否和法线是同一类(同一类的才能进行相同的转换)。而很明显,顶点代表的是一个点,在齐次坐标系下(x,y,z,1),法线代表的是方向,在齐次坐标系下(x,y,z,0)。两者不是同一类。如果你问为什么点是1,方向是0,先补补知识…

  • 尝试一下呢?如果对点和方向同时进行平移,点经过平移后变成了一个新的点,这个新的点具有了不同的含义。而方向经过平移,还是原来那个方向,就好比你开车一直笔直朝着前面开,你的方向并没有改变。

  • 我们知道一个4x4的变换矩阵,其平移的数据存放在第4列中即a14、a24、a34。而我们知道法线最后求得齐次形式是(x,y,z,0),所以很明显变换矩阵的第四行和第四列都不会对法线产生影响(脑中思考下)。

  • 那我们只需要考虑变换矩阵的前3x3就行了咯。那其实就只剩旋转和缩放了,先看缩放会不会影响。如果进行非统一变换,例如:(1,2,1),法线将不会与几何体表面垂直,大概就是下图的含义,如果要垂直,则需要其缩放的逆矩阵(2,1)即可(自行脑补下)。

  • 旋转矩阵没有影响,因为其是正交矩阵

我们大概可以确定在一些情况下,我们不能使用顶点的变换矩阵M套用至法线上。

法线变换矩阵推导过程

上面的毕竟也不是特别严谨,还是网上查阅相关资料后把证明过程自己推导了一遍。

综上,对于一开始提出的问题,如果变换矩阵里只涉及了旋转,因为旋转是正交矩阵,其特性是逆矩阵也是转置矩阵,所以不会发生影响。其余情况我们都不能直接使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值