顶点坐标变换(7) 摘要:
为了让物体运动起来,需要不断改变相应的世界矩阵,而投影矩阵和观察矩阵通常不变,特别是投影矩阵在设置好之后基本上不需要重新设置。
在默认情况下,对于窗口显示模式的应用程序,视口的大小就是当前窗口的客户区的大小,对于全屏模式的应用程序,视口的大小就是屏幕的分辨率。除非特殊需要,绝大多数程序都采用这一默认设置,所以在以后的示例程序中都将略过视口设置,而采用其默认设置。
顶点坐标变换(6) 摘要:
视区(视口)变换是Direct3D顶点变换流水线的最后一步,它通过定义视区信息(屏幕显示区域的实际宽和高等参数),完成顶点裁剪以及将顶点坐标从投影坐标变换为最终显示的以像素为单位的屏幕坐标等操作。裁剪过程保证不渲染完全在观察平截面以外的对象,还确保对于与观察平截面相交的对象,可以如下方式进行渲染:即在视口指定范围以外的部分不绘制像素。
顶点坐标变换(5) 摘要:
将摄影空间中的三维物体投影到二维胶片上,也就是Direct3D中的屏幕,这种三维到二维的变换过程就是投影变换,即从取景空间到摄影空间的变换。设三维物体在观察空间中的坐标为Pview,投影矩阵为Mproj,则顶点在投影空间中的坐标为:
Pproj = Pview * Mproj
顶点坐标变换(4) 摘要:
取景变换(也称观察变换)是在世界空间下架设一个摄像机,把各个顶点坐标从世界空间变换到摄影空间(观察空间)。在摄影空间里,摄像机或者说观察点位于原点,向着z轴正方向。因为Direct3D采用左手坐标系,所以z轴正方向指向屏幕里面。设三维顶点在世界坐标系的坐标为Pworld,在摄影空间内的坐标为Pview,则:
Pview = Pworld * Mview
顶点坐标变换(3) 摘要:
世界变换就是将物体顶点坐标从模型空间转换到世界空间。在模型空间里,顶点位置坐标依据模型的本地坐标系的原点而定,在世界空间里,所有模型的顶点共用一个原点,即世界坐标系原点。事实上,世界变换就是将一个模型从本地空间重新定位到世界空间内。从模型空间到世界空间的转换实际上就是对模型进行平移、旋转、缩放以及它们的任意组合变换。
顶点坐标变换(2) 摘要:
在Direct3D中,顶点坐标变换通常是借助于矩阵实现的,因此下面首先介绍在Direct3D中提供的各种矩阵类型和相关的矩阵运算函数。
顶点坐标变换(1) 摘要:
空间中的物体需要使用三维坐标来描述,而显示器是一个二维的表面,所以在屏幕上渲染一个三维场景时,首先需要将描述空间物体的三维坐标变换为二维坐标(世界坐标到屏幕坐标),这在Direct3D中称为顶点坐标变换。顶点坐标变换通常通过矩阵来完成。可以把顶点坐标变换想象成摄像过程,三维世界的景物通过摄像机的拍摄显示在二维的相片上,所不同的是把相片换成了屏幕。