UnityShader入门精要4.6.2坐标空间变换矩阵

今天看了UnityShader入门精要里4.6.2节讲解的坐标空间变化矩阵的时候,发现逻辑挺绕,故此记录加深印象与理解。

首先Mc->p变换矩阵:

"|"表示是按列展开的,Xc,Yc,Zc,Oc 分别代表坐标空间C的XYZ轴和原点在P坐标空间的表示。这个就不多说了,书上推导过程非常清晰。这里面绕的是一些性质和反推:

1.首先如果你得知了坐标空间C的XYZ轴及原点在坐标空间P的表示,那么这个Mc->p的转换矩阵直接就出来了,那么反过来,如果你有了这个矩阵,你也可以知道坐标空间C的XYZ轴及原点在坐标空间P的表示。

2.我们知道矢量是没有位置的,因此坐标空间的原点变化是可以忽略的,也就是说仅仅通过平移坐标系的原点是不会对矢量造成任何影响的。因此,对于矢量的坐标空间变换就可以使用3X3的矩阵来表示,因为我们不需要表示平移变换,那么变换矩阵就是:

3.知道了Mc->p,那么Mp->c就是它的逆变换,可以通过求逆矩阵的方式求解出来。但如果Mc->p是一个正交矩阵的话,那么

Mc->p的逆矩阵就等于它的转置矩阵,不需要再进行复杂的求逆操作了,所以有下列式子:

从这个式子中可以发现,不旦可以知道坐标空间P的XYZ轴在坐标空间C的表示(每一列),还能知道坐标空间坐标空间C的XYZ轴在坐标空间P的表示(每一行)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值