【GAMES101】04 Transformation 视图变换、投影变换

目录

  • view/camera transformation
    • 1 相机初始化
    • 2 相对变换
    • 3 如何做到步骤2?
    • 4 计算
    • 5 总结
  • Projection Transformation 投影变换
    • 正交投影和透视投影
  • 正交投影
    • 1 简单做法
    • 2 正规做法
    • 3 计算
  • 透视投影
    • 透视变换过程
    • 挤压过程计算

view/camera transformation

1 相机初始化

【GAMES101】04 Transformation 视图变换、投影变换_第1张图片

2 相对变换

相对变换:只要保证相机和物体的相对位置不变,那整体就不发生改变。

默认相机放在(0, 0, 0), 看向 -z 方向

【GAMES101】04 Transformation 视图变换、投影变换_第2张图片

3 如何做到步骤2?

相机位置从 e 到原点,观测方向从 g 到 -z,相机向上方向(向上方向:比如方向盘上放一个棍,棍的指向随方向盘转动而变化)从 t 到 Y,(g 叉乘 x)方向旋转到 X。

【GAMES101】04 Transformation 视图变换、投影变换_第3张图片

4 计算

【GAMES101】04 Transformation 视图变换、投影变换_第4张图片

可以看到, R v i e w − 1 R_{view}^{-1} Rview1 如果右乘一个向量 X: [ 1   0   0   0 ] T [1\ 0\ 0\ 0]^{T} [1 0 0 0]T,得到(g叉乘t)向量,同时可以验证得到从向量 Y: [ 0   1   0   0 ] T [0\ 1\ 0\ 0]^{T} [0 1 0 0]T 旋转到 t 方向,从向量 Z 旋转到 -g 方向。因为旋转矩阵的逆等于旋转矩阵的转置(偶旋转矩阵是正交矩阵),得到旋转矩阵 R v i e w R_{view} Rview

5 总结

【GAMES101】04 Transformation 视图变换、投影变换_第5张图片

Projection Transformation 投影变换

正交投影和透视投影

【GAMES101】04 Transformation 视图变换、投影变换_第6张图片
右边透视投影,近大远小。

【GAMES101】04 Transformation 视图变换、投影变换_第7张图片
右边正交投影即假设把透视投影的相机拿的无限远。

正交投影

1 简单做法

简单做法:直接去掉 z,保留x y坐标,再把 x y 坐标变到-1~1之间。

2 正规做法

(1) 长方体中心平移到原点;
(2) X Y Z 变成 -1~1。
【GAMES101】04 Transformation 视图变换、投影变换_第8张图片
(注:看的是 -z 方向,所以物体越远,z 越小)

3 计算

【GAMES101】04 Transformation 视图变换、投影变换_第9张图片

注:opengl左手坐标系
【GAMES101】04 Transformation 视图变换、投影变换_第10张图片

透视投影

【GAMES101】04 Transformation 视图变换、投影变换_第11张图片

透视变换过程

(1) 把左边的frustnum挤压成右边的cuboid的形状
(2) 从远平面到近平面左正交变换

规定:1. 近平面永远不变
2. 远平面的 z 不变
3. 远平面的中心点挤压完还是中心点
【GAMES101】04 Transformation 视图变换、投影变换_第12张图片

挤压过程计算

【GAMES101】04 Transformation 视图变换、投影变换_第13张图片
【GAMES101】04 Transformation 视图变换、投影变换_第14张图片
【GAMES101】04 Transformation 视图变换、投影变换_第15张图片
利用:
【GAMES101】04 Transformation 视图变换、投影变换_第16张图片
(1) 近平面所有点不变, (x y n 1)挤压完还是(x y n 1),这里 n 是指近平面的 z 坐标
(2) 远平面的 z 不变,远平面中心点 (0 0 f) 挤压完还是 (0 0 f)

利用(1)
【GAMES101】04 Transformation 视图变换、投影变换_第17张图片
【GAMES101】04 Transformation 视图变换、投影变换_第18张图片
【GAMES101】04 Transformation 视图变换、投影变换_第19张图片

你可能感兴趣的:(GAMES101笔记,线性代数,矩阵,算法)