三维下向量绕某一轴旋转
通过绕着三个轴的旋转的组合,可以描述复杂的旋转
罗德里格斯公式,描述朝向
考虑到旋转矩阵不太适合做差值运算(表示25度的旋转和15度的旋转取平均值并不是20度的旋转矩阵),这方面可以使用四元数去进行差值运算
视图变换
将三维空间坐标系内的点映射到相机坐标系中
首先操作相机的位置,方向,让其它物体跟着变换就行
首先将相机放置在坐标系的原点,朝向-Z的方向
即,先做平移再做旋转
平移很好做,一个Tview解决
旋转的时候要从反方向思考,就是可以简单计算出从-Z朝向转换到相机朝向
那么将此转换取逆(转置),就计算出了Rview
投影
正交投影和透视投影,是否有近大远小得区别(有无透视)
正交投影常用做法(右手系):
将物体的中心安排在原点(平移),再将物体压缩(缩放)成一个标准的cube(-1,1)边长为2
透视投影常用做法(右手系):
区别于正交投影,透视投影取的空间块的形状是截锥体(四棱锥砍掉头)
首先将底面挤压成大小和顶面一致,然后按照正交投影的做法就可以算出来了
那么对于任意一个点(x,y,z)
推导过程省略
第三行为0,0,n+f,-nf
这样挤压就完成了,然后再套入正交投影的做法,就可以完成透视投影了