Inverse transpose matrix

对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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值