OpenGL数据处理过程
当命令进入流程时,可以选用两种方法对它们进行处理:一种是通过流程立即执行这些命令;令一种是将其中一些命令组织到一个“显示列表”,过一段时间再执行它们。
流程中的“求值器”阶段通过将输入值赋给多项式命令提供了一种非常有效的方法来生成几何曲面和曲面的近似值。接下来的“各顶点操作及图元集”阶段主要是处理OpenGL的几何图元——点、线段和多边形。所有这些图元均由顶点来描述。顶点可以被转换和照亮。接下来图元被剪切到视口,为下一阶段做好准备。
“光栅化”生成了一系列的帧缓冲地址以及相应的用于描述点、线段或多边形的二维值。这些生成的“片段”将被送到最后一个阶段——“各片段的操作”,这一阶段是数据以像素形式存入“帧缓冲区”之前的最后操作。这些操作包括根据帧缓冲区中原有的深度值(用于深度缓冲操作)与输入值而有条件地更新帧缓冲区的操作,还包括对输入的像素颜色与已存储的颜色所进行的融合操作,对像素值所进行的屏蔽操作及其他的逻辑操作。
数据是以像素形式而非顶点形式输入的。这些数据可以用来描述一个用于纹理映射的图像,它将跳过第一阶段,而通过“像素操作”阶段作为像素来处理。这一阶段的处理将导致两种结果:其一是被存入“纹理存储器”,以备光栅化阶段所用;其二是直接被光栅化。后者所形成的片段将被存入帧缓冲区,就好像它们是由几何数据生成的一样。