昨天简要的介绍了计算机图形学中平移、缩放和旋转等三种最基本的几何变换。上述变换在固定渲染管线中主要用在从局部坐标系到世界坐标系和从世界坐标系到摄像机坐标系两个阶段。在固定渲染管线中,除了上述两个阶段外,还包括从摄像机三维坐标系到视平面二维坐标系和从视平面二维坐标系向屏幕显示二维坐标系的变换等两个阶段。在这两个阶段,所使用的几何变换与前述的三种最基本的几何变换不同,下面对这两个阶段所使用的的几何变换进行简要介绍。
本回介绍较为简单的从视平面二维坐标系向屏幕显示二维坐标系的变换。主要是要考虑两个二维坐标系的原点、坐标轴的朝向和所框定的范围。对于视平面而言,原点位于图像的中央位置,当面对该平面时x轴正向朝右,y轴正向朝上,x轴和y轴的范围均为-1到1之间。对于屏幕显示平面而言,原点位于图像的左上方,当面对该平面时x轴正向朝右,y轴正向朝下,x轴的范围为0到屏幕显示平面的宽度,y轴的范围为0到屏幕显示平面的高度。关于z轴坐标,在图像光栅化阶段,主要用来考虑像素的重叠和遮挡问题。此时,各顶点z轴方向的相对大小关系是有意义的,而z轴坐标的实际数值的无关紧要的。不过由于专门用于z轴比较的缓存格式是可以单独设定的,并且可以与顶点缓存的格式不同。因而,还是希望对光栅化时所用到的z轴坐标通过设定最大值和最小值的方式进行规范。为了配合这一步的实现,从摄像机三维坐标系到视平面二维坐标系的变换也需要对z轴方向的坐标进行考虑。为了使形式更为统一,并考虑可视范围的合理性,变换后的z轴方向的坐标将在0到1范围内取值。得到上述三维坐标的变换要求后,可以总结出此处所需的变换是平移变换和缩放变换的综合。对于x轴,首先需要将坐标放大相应倍数,以满足屏幕显示平面的大小要求,接下来需要将x轴的坐标原点平移到屏幕显示平面的中央。对于y轴,情况基本与x轴相同,唯一的不同是坐标放大时要增加一个负号,以满足变换前后坐标轴朝向相反的特点。对于z轴,本质上讲与x轴的变换是相同的,但缩放的比例和平移的距离都要根据屏幕显示平面对z轴坐标要求的最大值和最小值做计算得到,因而看上去的表达式会有一定差别。由于上述对三个轴的变换都涉及了平移变换,因而需要使用4维向量和4*4的变换矩阵,并要求4维向量的第四维在变换前后均为1。考虑该变换的常用性和通用性,将平移和缩放综合成一个矩阵,最终得到从视平面向屏幕显示平面的变换运算。