欢迎光临散文网 会员登陆 & 注册

百人计划图形1.2.3——MVP矩阵运算

2023-08-07 08:20 作者:咽泣子  | 我要投稿

学习变换矩阵的目的在于:

·将3D物体转化到2D平面(3D游戏中显示在2D屏幕上,对模型的顶点坐标进行一系列的矩阵变换)

·为各个空间的运用做准备


    MVP矩阵代表着什么?

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

3Dmax中x轴代表物体的左右,y轴代表物体的前后,z轴代表物体的上下(右手坐标系)——左图

unity中z轴朝向的是物体的正方向,x轴代表物体的左右,y轴代表的是正方向(左手坐标系)——右图


视觉空间——以摄像机为中心的空间坐标系

理解后的流程如下 

z向量在unity中正方向为负z的方向

注:需先取反然后变换矩阵才能得到想要的矩阵

p矩阵:将视觉空间下的顶点坐标转换为裁剪空间下(判断坐标是否在“屏幕中”,不在的点剔除)的顶点坐标

两种投影分别对应不同的p矩阵

记得尝试p矩阵推导

Near代表摄像机的近裁平面、Far代表摄像机的远裁平面、FOV为摄像机的可视范围

Near·ClipPlaneHeight = 2 * Near * tan(FOV/2)——计算近裁平面高度

计算远裁平面高度同理

size为可视范围的距离

width为Aspect * ClipPlaneHeight

近裁平面高度为2*size,远裁一致

与透视原理一致

世界uv,熟悉的shader代码


百人计划图形1.2.3——MVP矩阵运算的评论 (共 条)

分享到微博请遵守国家法律