目的
如果希望有效地使用图形绘制系统,那么有必要深入理解其实现过程;哪些步骤比较容易实现,以及哪些步骤的实现对硬件和软件的要求较高。对绘制流水线的实现过程进行深入讨论有助于更好地使用最新图形硬件支持的新功能。
图形绘制流水线
我们可以把这个过程视为一个黑盒子,它的输入是程序定义的顶点和状态变量,即几何对象,属性和虚拟照相机的参数设置;输出是位于帧缓存的彩色像素阵列。
在黑盒子内部,需要完成很多任务,包括几何变化、裁剪、明暗处理、隐藏面消除和图元的光栅化。
for(each_object) render(object);
在过去,这种基于对象空间方法的主要限制在于需要大容量的内存以及单独处理每个对象所需的大量视觉开销。任何经过几何处理步骤处理后的集合图元都可能对帧缓存中的像素产生影响。
目前已有的各种基于流水线绘制结构的处理结构的几何处理器每秒能够处理数以千万的多边形。实际上,正是因为我们对每个图元执行相同的操作,所以构建基于对象空间的图形系统所用的硬件处理速度很快,而其成本低廉,许多功能可由专用芯片来实现。
如今,基于对象空间方法的主要局限性是它们无法处理大部分