栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

MVP矩阵

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MVP矩阵

MVP矩阵:

MVP矩阵分别是模型(Model)、观察(View)、投影(Projection) 三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate),它在之后会变为世界坐标(World Coordinate),观察坐标(View Coordinate),裁剪坐标(Clip Coordinate),并最后以屏幕坐标(Screen Coordinate)的形式结束。

M:模型空间(以自身为中心)—>世界空间(以世界为中心)

对应依次进行矩阵变换:

(1)缩放

(2)旋转

(3)平移

V:世界空间—>视觉空间(以摄像机为中心)

从世界空间变换到摄像机空间—>平移整个观察空间,摄像机原点和世界坐标原点重合,坐标轴重合—>摄像机是在世界空间中是先旋转,再平移—>为了让摄像机与世界坐标重合,逆变换

对应的矩阵变换:

(1)平移

(2)旋转

(3)z分量取反(摄像机默认朝向是-z)

P:视觉空间—>裁剪空间

1.不是真正的投影,为投影做准备。

2.目的:判断顶点是否在可见范围内。

3.P矩阵:对x,y,z分 量进行缩放,用w分量做范围值。如果x,y,z都在w范围内,那么该点在裁剪空间内。

透视投影:

正交投影:

nearClipPlaneHeight=2:Size

farClipPlaneHeight =nearClipPlaneHeight

nearClipPlaneWidth =Aspect nearClipPlaneHeight

farClipPlaneWidth = nearClipPlane Width

OS = 模型原点为坐标系原点的空间坐标系 = 模型空间
WS = 世界空间为坐标原点的空间坐标系 = 世界空间
VS = 摄像机为坐标系原点的空间坐标系 = 视觉空间
CS = 裁剪空间 确定像素是否位于可见范围内
SS = 屏幕空间 显示平面 根据平台不同 坐标原点不同 分别位于左下或者左上 OPENGL屏幕坐标系原点在左下角向上向右增加,D3D屏幕坐标系原点在左上角向下向右增加。
WS = OS * M矩阵
VS = WS * V矩阵
CS = VS * P矩阵
CS得到的坐标经过齐次除法(透视除法)和映射输出 得到SS的二维坐标 (一般unity自动在底层进行 所以我们只要得到裁剪空间内的坐标即可)

【五个空间中 只有观察空间(VS)是右手坐标系 剩余 都是左手坐标系】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号