0%

【GAMES101学习笔记01】Transformation

课程地址

GAMES101

二维变换

Scale

Scale
Scale02
此外,如果要沿y轴翻转,则sx=-1,sy=1即可,沿x轴翻转同理

Shear(切变)

Shear

如果要计算变换矩阵,只需找到变换前后点的对应关系,再将其转换成矩阵表示即可。

Rotate(以原点为中心,逆时针)

Rotate

Linear Transformation

Linear

Translation

Translation
然而上式无法转换为二维的变换矩阵
只能写成如下的形式
Translation02
因此需要引入齐次坐标,以便于将所有变换写成统一的形式

Homogeneous Coordinator

hemogenous
由于向量不需要平移变换,因此向量的第三个数为0,且分别对待点和向量可以保证如下性质。
Homogeneous02
齐次坐标具有下面性质
Homogeneous03
因此,点加点表示两个点的中点
齐次坐标表示仿射变换(先线性变换,在平移):
Homogeneous04
各种变换的齐次坐标变换表示:
Homogeneous05

Inverse Transform:
即乘以这个变换的逆矩阵,其意义是该变换的逆变换

需要注意

变换的顺序十分重要,否则可能无法得到想要的结果。
此外,矩阵的应用顺序是从右到左,即最右边的矩阵是第一个变换

变换的合成:
composing
可以先将所有的变换相乘为一个矩阵,再对所有点进行变换。

变换的分解:
加入以点c为中心进行旋转,则如下
decomposing

三维变换

三维的齐次坐标与二维的类似
3Dhomogeneous

其他变换的齐次坐标表示均与二维情况类似,但需要额外考虑z轴。

三维Rotate

其中需要注意的是旋转操作,以x、y、z轴旋转的矩阵分别如下:

3D Rotate
其中绕y轴的旋转有所不同,可以考虑右手螺旋定则以解释。
3D Rotate 02

给定旋转轴n和旋转角$\alpha$,默认以原点为起点,所得出的旋转矩阵如下:
3D Rotate 03

四元数也可以用于表示旋转(视频中没有提到具体内容)

View/Camera Transformation

model transformation: 模型自己的变换
View transformation: 相机位置的变换
projection transformation: 投影平面上

相机的三个属性:
Camera

View transformation: 将相机移到原点,向上方向为y轴正方向,看向z轴负方向,所有物体按照相机的变换方式进行变换
Camera02
变换的方式如下
Camera03
Camera04

Projection Transformation

Projection
Projection

Orthographic Projection

只需要去掉z的值,并将结果放倒[-1,1]2的矩形上,就是正交投影

Orthographic Projection
归一化的长方体可以理解为显示区域

Perspective Projection

回顾齐次坐标的性质:
Recall

透视变换:
Perspective Projection
先将远平面挤成近平面,然后再做正交投影

如何挤压:
Perspective Projection 02
Perspective Projection 03

挤压时齐次坐标的变换方式:
Perspective Projection 04
假设变换后的近平面和远平面的z值不变,则有
Perspective Projection 05
Perspective Projection 07
Perspective Projection 06