GAMES101
清华大学-计算机图形学基础

2D Transformation

非齐次

旋转推导

GAMES101中yan神用的是(0,1)和(1,0)代入直接求的。 注意: ps:是个正交矩阵,逆=转置

齐次

### 复合运算 矩阵是从右往左乘的,不能交换。

3D Transformation

表示和二维相似。

旋转

绕轴旋转

y轴这里是反的。

复合旋转

旋转可以分解到三个方向

绕任意轴旋转 Rodrigues’ Rotation Formula

默认轴的起点在原点

把轴和物体先偏移到原点,再转,再移回去。

Viewing Transformation

从照相中学习

照相:找个好地方把人摆好(model transformation),找个好角度(view Transformation),茄子(projection transformation)

摆相机(观测矩阵初始定义)

如果相机和物体相对静止,照片会是相同的。

视图变换 View/Camera Transformation

ps: 相机那里也是个正交坐标系鸭!所以g×x直接跟着转过去就好啦

先平移,再旋转。

旋转矩阵先求逆矩阵就行

代入(1,0,0,0)和(0,1,0,0)(0,0,1,0)试试,其实就是左边三列。(你学废了🐎)

投影变换 Projection Transforamation

正交投影Orthographic projection
vs
近大远小的透视投影Perspective projection

ps:工图上画的就是正交投影啦2333

正交投影平行线一直平行,透视投影平行线最终会相交。 正交投影近大远小,正交投影则大小与距离无关。

正交投影 Orthographic projection

  • 一个简单的理解

  • 通常

这里认为看着-z所以近n比远f坐标值大

这也是为什么OpenGL使用左手坐标系

透视投影Perspective projection

特点:近大远小,原来的平行线不平行了。

考虑先把原平面的往里挤成个长方体,再做正交投影

根据相似三角形可以得到第一二行,第四行(0 0 1 0),根据近点的点不变可以猜测第三行为(0 0 A B),远平面中点不变,可以得到方程