向量运算
矩阵运算
比较基础就不记录了
MVP矩阵推导
1.讲为什么要有矩阵变换和不同的坐标空间
- 将3D物体转化到2D平面
- 为各个空间的运用做准备
2.介绍各个空间的概念和含义
MVP矩阵代表什么?
MVP矩阵分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate),它在之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip Coordinate),并最后以屏幕坐标(Screen Coordinate)的形式结束。
OS = 模型原点为坐标系原点的空间坐标系 = 模型空间
WS = 世界空间为坐标原点的空间坐标系 = 世界空间
VS = 摄像机为坐标系原点的空间坐标系 = 视觉空间
CS = 裁剪空间 确定像素是否位于可见范围内
SS = 屏幕空间 显示平面 根据平台不同 坐标原点不同 分别位于左下或者左上 OPENGL屏幕坐标系原点在左下角向上向右增加,D3D屏幕坐标系原点在左上角向下向右增加。
WS = OS * M矩阵
VS = WS * V矩阵
CS = VS * P矩阵
CS得到的坐标经过齐次除法(透视除法)和映射输出 得到SS的二维坐标 (一般unity自动在底层进行 所以我们只要得到裁剪空间内的坐标即可)
注:五个空间中 只有观察空间(VS)是右手坐标系 剩余 都是左手坐标系
M:模型空间->世界空间
模型空间:以自身为中心的空间坐标系
3dmax采用右手坐标系
世界空间:以世界为中心的空间坐标系