Firingsquad对基本的3D知识诸如T&L,纹理化以及滤波等等进行了详细的解释,以下是他们对几何转换的讲解:
“每个计算机绘制的场景都是由几何数据组成的。三角形是3D几何学中的最基本形式,他们是组成物体的基本结构。但是,计算机并不是真的给三角形着色,而是在顶点的基础上着色。一个顶点只是一个点或者是空间中的一个位置。你可以将顶点视为3D空间中的一个小点,每个顶点都代表三角形的一部分,每个三角形都有三个顶点。
在处理顶点的过程中,为了将之显示在电脑屏幕上,要经过很多数学计算。这些计算过程就是我们经常谈到的转换。这些计算过程实际上是在空间中的平移,旋转和缩放。这里我们所说的空间包括三个部分,局部坐标系,世界坐标系和屏幕坐标系。
局部坐标系是第一个空间,顶点就位于这个坐标系。而光照和剪切则在第二个空间,世界坐标系中发生。第三个空间,屏幕坐标系完成上色和纹理化工作。
T&L引擎可以支持除标准转换工作以外的一些扩展功能。高阶曲面就是这些扩展功能中的一个功能。它实际上是进行几何压缩。高阶曲面有游戏中有很多应用场合,它的原理简单说就是用一般的图象定义来创建高度细致的模型。例如,控制点可以用来定义物体的形状,有效地确定物体的外观。而镶嵌化把物体进行分割成更小的三角形直到获得需要的细节度为止。每个由镶嵌化分割成的小三角形可以呈现更加更好的细节,使物体更加平滑圆润。 高阶曲面的另一个具体应用就是先对低细节物体简单地渲染,之后使用N-patchs进行镶嵌化处理。
Vertex shaders也是T&L的一个扩展,它允许程序员对每个顶点进行编程达到需要的功能。这样经过对顶点的处理后可以获得特殊的效果。例如Vertex shader可以创建波纹效果以模拟真实的水,这实际上执行某些运算,在新的位置上对顶点计算处理,不支持vertex shaders的图形卡则由软件T&L来完成。
这是一篇很好的技术性文章,我建议你们都读一下这篇文章。