首先,已知点在世界空间下的坐标,如何通过变换矩阵来得到观察空间下的坐标位置?
先给出基本公式
即观察空间下的坐标位置Pview = 世界空间的基向量在观察空间下的变换矩阵[Wview]乘以P在世界空间下的坐标
那么这个[Wview]怎样得到?其实可以使用观察空间的基向量在世界空间下的变换矩阵的逆矩阵得到,因为他们是正交矩阵,那么就可以直接引用转置矩阵来计算了
下面看看Unity怎么取得变换矩阵[Vworld]
z由对目标顶点位置 - 观察空间坐标系位置得到,y轴先假设一个单位坐标,再通过叉积得到x的方向,再次叉积得到y的方向,下面是矩阵和转置后的矩阵
因为两个坐标系的原点不同,我们还需要对整个坐标系即对矩阵进行偏移,T是偏移的坐标,同样都引入齐次坐标
计算后得到最终的矩阵