HPP_Graphics_1.2.3 MVP矩阵运算
a). 简介
MVP矩阵分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate),它在之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip Coordinate),并最后以屏幕坐标(Screen Coordinate)的形式结束。下面的这张图展示了整个流程以及各个变换过程做了什么:
b). M: 模型空间→世界空间
变换顺序
- 缩放
- 旋转
- 平移
c). V: 世界空间→观察空间
- 变换顺序:
- 平移
- 旋转
- Z分量取反(观察空间采用的是右手坐标系,而Unity则是左手坐标系)
d). P: 观察空间→裁剪空间
- 不是真正的投影,为投影做准备
- 目的:判断顶点是否在可见范围内
- P矩阵:对x,y,z分量进行缩放,用w分量做范围值。如果x,y,z都在w范围内,那么该点在裁剪空间内。
d.1) 正交矩阵
d.2) 透视矩阵
TODO: 推导各项矩阵e). 光栅化补充
- 三角形设置:得到图元的边界条件,并对边进行插值;
- 三角形遍历:对单行进行插值