1. 缩放
(1)均匀缩放
(2)不均匀缩放
(3)反射
(4)切变矩阵(Shear Matrix)
(5)旋转矩阵
2. 齐次坐标
主要用于应对平移操作,因为该变换不能写成上面的线性变换形式,只能写成:P24
由于它是一个特殊情况,为了统一所有的变换表示,引入了齐次坐标。
通过将二维的点和向量,增加一个维度,使得平移操作也可以写成一个矩阵*向量的形式P25
最终得出来Affine仿射变换P27
代价:引入了额外的数字,任何点变成xy1,任何向量变成xy0
注意:只有在仿射变换时,齐次坐标矩阵最后一行才是001,并非任何情况都是001.比如投影变换,它是有意义的。
逆变换:逆矩阵
正向旋转和反向旋转:想要求出一个相反的旋转,只需要先写出正向旋转,然后将它转置,得出的就是逆。在数学上,如果一个矩阵的逆等于它的转置,那么这个矩阵就是正交矩阵。
3. 变换的组合与分解
复杂的变换可以通过简单变换组合得到,但是要注意变换顺序(即:矩阵乘的顺序,因为矩阵不满足交换律)。
先用线性变换然后再用平移变换?在三维空间也一样。
组合的应用顺序要和矩阵的乘法顺序反过来。
变换不仅可以组合也可以分解
4. 3D变换
旋转:如果是按着某一个轴旋转,那么该轴的值不变P8
对于复杂旋转,都是可以用x,y,z旋转进行组合
P10罗德里格斯旋转公式:与2D的思想一致,把轴n的起点移到起点,然后再旋转?
5. Viewing Transformation
(1) View / Camera transformation
P12如何得到“一张照片”?MVP变换
view transformation:摆放一台“相机”
我们需要:相机位置 + 相机Look-at + 向上方向(Up Direction)
我们规定:相机位置Origin + Look at Z + up at Y(写成矩阵形式为P16)
(2) Projection Transformation
正交投影
P21通俗做法
P22正规做法:把一个三维空间的正方体,首先平移到原点位置,然后缩放到空间【-1, 1】形成一个标准正方体。
由于我们是沿着-Z方向去看,所以会导致远处的Z值比近处的Z值小,这样是为了抱着右手坐标系。而OpenGl则假设为左手坐标系,因为更方便。
透视投影
特点:假设相机无限远,平行线不再平行,近大远小。
齐次坐标将被应用到透视投影中。
P29规定:近平面的四个点(平面上的任何一个点)不变 + 远平面上Z方向不变 + 远近平面中心点不变
挤压这一步怎么做?
P30:点x和y的求法:基于相似三角形,知道Z就能求出prime X和Y

Leave a comment