【TA-霜狼_may-《百人计划》】1.2.3 MVP矩阵计算
1.2.3 MVP矩阵计算
1.2.3.1 学习目的
- 将3D物体转化到2D平面
- 为各个空间的运用做准备
1.2.3.2 MVP矩阵的定义
MVP矩阵分别是:
- Model 模型
- View 观察
- Projection 投影
五个坐标:
顶点坐标起始于局部空间(Local Space),这里称为局部坐标(Local Coordinate),它再之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip Coordinate),并最终以屏幕坐标(Screen Coordinate)的形式结束。
1.2.3.3 M:模型空间到世界空间
模型空间以自身为原点,世界空间有独立于模型本身的原点。
从模型空间变换到世界空间分为三个步骤(顺序不能变换):
- 缩放
- 旋转
- 平移
对应的依次进行矩阵变换得出变换矩阵。
M矩阵的表示(这里的旋转只包含了围绕y轴的旋转,是否需要添加有关其他轴的呢?):
1.2.3.4 V: 世界空间到视觉空间
视觉空间:以摄像机为中心的空间坐标系。
从世界空间变换到摄像机空间
↓
平移整个观察空间,使得摄像机原点和师姐坐标原点重合,并使得坐标轴重合
↓
摄像机在世界空间中是先旋转,再平移的
↓
为了让摄像机与世界坐标重合,采用逆变换
变换过程:
- 对世界空间平移
- 对世界空间进行旋转
- z分量取反(左手坐标系的缘故)
按照上述方法依次进行矩阵变换得出变换矩阵
V矩阵的矩阵表示:
1.2.3.5 P: 视觉空间到裁剪空间
注意:
- 不是真正的投影,为投影做准备
- 目的:判断顶点是否在可见范围内
- P矩阵:对x, y, z分量进行缩放,用w分量做范围值。如果x,y,z都在范围内,那么该点在裁剪空间内。
有两种投影方式: - 透视投影
- 正交投影
1.2.3.6 P:透视投影
P矩阵的矩阵表示:
透视投影各个参数的意义如下图:
利用上述P矩阵,得到的变换后的视锥体坐标如图:
由此可得,如果一个顶点在视锥体之内,那么它变换后的坐标必须满足:x,y,z均在-w到w的范围内。
1.2.3.7 P:正交投影
正交投影的相关示意图及其参数解释:
正交投影P矩阵的矩阵表示:
总结
模型空间、世界空间、视野空间的区别:
- 模型空间以模型自身为中心,坐标轴原点为坐标原点,通过缩放、旋转、平移**(Model矩阵)**将模型坐标(Model Coordinate)变换到世界坐标(World Coordinate)
- 世界空间是以整个场景作为中心,通过平移和旋转**(View 矩阵)**,以及z分量的取反将世界坐标(World Coordinate)转换到观察坐标(View Coordinate)
- 视野空间以摄像机作为原点中心,通过投影矩阵**(Projection 矩阵)**可将观察坐标(View Coordinate)转换到裁剪坐标(Clip Coordinate)