MVP矩阵分别是模型(Model)、观察(View)、投影(Projection)三个矩阵

顶点坐标始于局部空间(Local Space),即局部坐标(Local Coordinate),然后依次变换为世界坐标(Word Coordinate)、观察坐标(View Coordinate)、裁剪坐标(Clip Coordinate)、屏幕坐标(Screen Coordinate)。

M:模型空间->世界空

V:世界空间->视觉空间

(平移整个观察空间,让摄像机原点和世界坐标原点重合、坐标轴重合,原摄像机的世界坐标是在世界空间中先旋转、再平移得到的,为了让摄像机与世界坐标系重合,应进行逆变换)

第一步进行平移

第二步进行旋转

第三步z分量取反(左手坐标系的原因)

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

  1. 不是真正的投影,为投影做准备
  2. 目的:判断顶点是否在可见范围内
  3. P矩阵:对x,y,z分量进行缩放,用w分量做范围值。如果x,y,z都在w范围内,那么该点在裁剪空间内,即:-w\leq x\leq w-w\leq y\leq w-w\leq z\leq w

透视投影:

正交投影:

模型空间、世界空间、观察空间三者的区别:

维度

模型空间

世界空间

观察空间

坐标系类型

局部(物体自身)

全局(场景统一)

摄像机为中心

原点

物体锚点(如中心)

场景原点

摄像机位置

变换目标

物体自身的旋转、缩放

物体在场景中的位置

摄像机视角下的物体位置

矩阵

模型矩阵(Model Matrix)

无(已通过模型矩阵变换)

视图矩阵(View Matrix)

依赖关系

独立于场景和其他物体

所有物体共享

完全依赖摄像机位置和方向

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐