百人计划图形1.2.3——MVP矩阵运算
学习变换矩阵的目的在于:
·将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轴代表的是正方向(左手坐标系)——右图


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

理解后的流程如下

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

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

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


Near代表摄像机的近裁平面、Far代表摄像机的远裁平面、FOV为摄像机的可视范围
Near·ClipPlaneHeight = 2 * Near * tan(FOV/2)——计算近裁平面高度
计算远裁平面高度同理
size为可视范围的距离
width为Aspect * ClipPlaneHeight

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


世界uv,熟悉的shader代码

