世界坐标系主要用于描述其他坐标系的位置,被广泛的称为全局坐标系或者宇宙坐标系,描述的是整个场景中的所有的对象,可以理解为绝对坐标系
物体坐标系是针对特定的物体而建立的独立坐标系,当物体发生变化的时候,相当于它本身的坐标系相对于世界坐标系发生变化的过程。
摄像机坐标系是和观察者密切相关的坐标系,摄像机坐标系和屏幕坐标系类似,差别在于摄像机坐标系处于3d空间中,而屏幕坐标系在2d平面中。 摄像机坐标系描述的问题主要包括物体是否在摄像机坐标系的区域中,物体的渲染顺序和物体的遮挡绘制。
模型视图矩阵相当于是调整拍照时相机的位置,来确认模型和相机中的相对位置,其中视图矩阵是相对于相机而言的,模型矩阵是相对于物体而言的。模型变换指在物体坐标系下,进行的平移,旋转,缩放的变换操作。视图变换是模型变换的逆矩阵,是将物体坐标系变换到摄像机坐标系的过程。与模型变换相反。
投影变换相当于拍照时通过选择镜头和调整焦距等,将景物投射到二维底片的过程。投影变换的目的是产生一个视景体。
视景体有两个作用:
(1)决定一个物体如何映射到屏幕(透视投影:棱台装视景体,又称视锥体;正投影:立方体,平行视景体)。
(2)决定哪些物体(或物体的某一部分)被裁减到最终的图像之外。
其中投影的方式又分为:
(1)透视投影:离照相机近的物体大,离照相机远的物体小。
(2)正投影:物体和照相机之间的距离不影响它看上去的实际大小。
将投影变换得到的结果反映到指定的屏幕窗口上去,场景最终变换到了窗口坐标系中。
如图1所示,世界坐标变换到屏幕坐标需要的矩阵变化。首先定义世界坐标系下的一个点为pworld。通过相机获取它的视图矩阵为mviewmatrix,投影矩阵为mprojectionmatrix,视口矩阵为mviewportmatrix。则定义屏幕中的点为pscreen。