Games101-03-transformation
Dionysen

Last Lecture

Vectors, Dot product, Cross product, Matrix, Corrdiantion.

Transformation

Modeling transformation.

3D世界投影到2D的屏幕上,需要很多的变换。

变换主要是针对坐标的变换,坐标理解为列向量,使用矩阵乘以此向量,可以将此向量变换为另一个向量,继而转化为坐标。这个矩阵即为变换矩阵。

图形学中modeling变换矩阵是将物体从局部坐标变换到世界坐标,描述物体的顶点坐标最初都是在[-1,1]区间内的,经过modeling变换,不同的物体经过不同的变换(平移、旋转、缩放)有了不同的位置和大小,即在世界坐标中了。在世界坐标中的意思是其坐标不只在[-1,1]区间内,而是可以在任意地方。

viewing变换是视角矩阵将世界坐标变换到相机的坐标。

projection变换是将三维世界中的坐标通过投影映射到屏幕上。

剪切变换(Shear)

向量与坐标

二者不同点在于,向量只表示方向,而点是空间中的点。向量具有平移不变性。

因此向量增加的一个维度(w)应该是0,这样使用平移矩阵乘以它得到的仍然是他自己。而坐标则不同,平移矩阵乘完得到的是平移后的坐标。

  • vector + vector = vector (向量相加依然是向量)
  • point - point = vector (正好对应点减去一个点得到一个向量)
  • point + vector = point (对应一个点的平移)
  • point + point = ?? (中点)

在齐次坐标中,点加上一个点得到的是这两个点的中点。因为w等于2了, 这样两个坐标相加除以w得到的就是中点。

平移变换无法直接通过等维矩阵直接乘得来,使用高一维的矩阵来完成。

引入齐次坐标是为了让所有变换都可以通过矩阵来完成,不需要额外的平移。

image

逆变换

逆矩阵可以完成逆变换。

注意

变换矩阵的顺序会对结果有不同的影响。顺序是从右到左乘。

矩阵可以组合。按某一个点来旋转,可以分解为先将此点平移到原点,旋转后再平移回去。

显示评论