目录
- 0 课程内容
- 1 Why Study Transformation
- 1.1 Modeling 模型变换
- 1.2 Viewing 视图变换
- 2 2D Transformations 二维变换
- 2.1 Scale 缩放变换
- 2.2 Reflection Matrix 反射矩阵
- 2.3 Shear Matrix 切变矩阵
- 2.4 Rotate 旋转
- 2.5 特点:线性变换可以用矩阵表示(Linear Transforms = Matrix)
- 3 齐次坐标系(Homogeneous Coordinate)
- 3.1 为什么要引入齐次坐标
- 3.2 Affine Transformation仿射变换
- 3.3 2D Transformations 引入齐次坐标后的二维变换
- 4 Other Transformation
- 4.1 Inverse Transformation 逆变换
- 4.2 Composite Transform 变换组合
- 4.3 Decomposing Complex Transforms 分解复杂变换
- 5 3D Transforms三维变换
- 🙋♂️ 作者:海码007
- 📜 专栏:计算机图形学专栏
- 💥 标题:【GAMES101】Lecture03 Transformation 变换
- ❣️ 寄语:对知识永远有兴趣!
- 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正
0 课程内容
- 为什么学习变换
- 二维变换:旋转、缩放、切变
- 齐次坐标系
- 组合变换
- 三维变换
1 Why Study Transformation
1.1 Modeling 模型变换
1.2 Viewing 视图变换
2 2D Transformations 二维变换
2.1 Scale 缩放变换
每个点的坐标都被缩放了 S 倍。
写成矩阵形式:下图中的对角矩阵是缩放矩阵
非均匀的缩放
2.2 Reflection Matrix 反射矩阵
2.3 Shear Matrix 切变矩阵
Y坐标没有发生变换,只有X坐标改变, X' = X + aY
2.4 Rotate 旋转
如果不给其他信息,默认旋转就是围绕着 (0,0) 点旋转,旋转方向是逆时针方向。
下图是一个边长为1的图像:
2.5 特点:线性变换可以用矩阵表示(Linear Transforms = Matrix)
前提:相同纬度
3 齐次坐标系(Homogeneous Coordinate)
3.1 为什么要引入齐次坐标
因为平移变换(不属于线性变换)比较特殊,看起来很简单,但是无法表示为矩阵形式
解决办法:引入齐次坐标系。
增加一个维度,二维点用三个维度来表示。这样就可以用矩阵来表示平移变换了。
为什么二维点,第三个维度是1,但是二维向量,第三个维度是0。
因为向量具有平移不变性。
3.2 Affine Transformation仿射变换
仿射变换 = 线性变换 + 平移
可以使用齐次坐标表示,这样只需要一个矩阵。
3.3 2D Transformations 引入齐次坐标后的二维变换
代价就是:空间复杂度增加了
4 Other Transformation
4.1 Inverse Transformation 逆变换
逆变换。
4.2 Composite Transform 变换组合
先平移再旋转:失败了
先旋转再平移:成功(矩阵操作是没有交换律的)
4.3 Decomposing Complex Transforms 分解复杂变换
下图中,如果图像想围绕左下角进行旋转,而不是围绕坐标原点旋转。
那么我们可以把这个复杂的变换拆解:
- 先把图像移动到原点
- 然后把图像绕原点旋转
- 然后再把图像移动回去
5 3D Transforms三维变换
使用二维变换做类比,只不过多了一个维度
先应用线性变换,再平移: