GAMES101-现代计算机图形学入门-闫令琪——Lecture 04 Transformation Cont.
目录
旋转矩阵的逆就是旋转矩阵的转置
- 如果一个矩阵的逆等于它的转置,那么这个矩阵是正交矩阵
3D transformations
- 先线性变换再平移
Scale
Translation
Rotation around x-, y-, or z-axis
- 实际上就是固定旋转轴的值,其他就是二维的
- 其中绕y轴的是反着的,因为y是由z×x得到的,所以y轴的逆时针相当于x、z的顺时针,因此角度相当于是负的,得到上图答案。
3D Rotation
上面三种旋转姿态:roll、pitch、yaw
罗德里德斯旋转公式
旋转轴n和旋转角度α(默认旋转轴过原点)
四元数(quaternation)
-可以更好的处理插值,因为普通的坐标旋转15°和旋转25°取平均不是旋转20°,不适合做插值。
Viewing(观测)transformation
View(视图)/ Camera transformation
How to perform view transformation(观测矩阵)
- 约定俗称:
相机永远在原点看向 -z 轴,向上方向为y轴
如何实现相机位置变换
- 先平移,然后求旋转
- 旋转不好求,先求其逆矩阵,然后再求自己
- 逆矩阵就是由坐标轴变到那三个方向,下面的矩阵很重要!
- 旋转矩阵的逆就是他的转置
Summary
- 任何时刻,相机和物体都应用同样的变换
- 保持相机在原点,上方向在Y,看向 -Z
Projection(投影)transformation
- Orthographic(正交)projection
– 更多用于制图(不再适用于近大远小) - Perspective(透视)projection
– 平行线不再平行
Orthographic(正交)projection
– 无论多远都是那么大,把对应的z扔掉就可以。
– 不管范围多大,都把他移到二维-1,1的矩形上。
- 操作
先平移再缩放:
如果一个东西离我们远,其z值小。
OpenGL用左手系,会产生远的z值大的好处,但是也有很多弊端,比如x×y不等于z。
Perspective(透视)projection
- 这个投影是最常用的
- 挤压原则:(挤压成长方体)
1.近平面永远不变
2.近远平面z值永远不变
3.中心点永远不变
想要得到问号的值:用到近远平面z值永远不变
可以将????变成(0 0 A B)
再用远平面中心点永远不变