基本 OpenGL 操作

下图说明了 OpenGL 如何处理数据。 如图所示,命令从左侧输入 ,然后继续执行处理管道。 某些命令指定要绘制的几何对象,而其他命令控制对象在不同处理阶段的处理方式。

显示 OpenGL 数据处理管道阶段的示意图。

基本 OpenGL 操作中的处理阶段如下所示:

  • 显示列表 可以选择将其中一些命令累积到显示列表中供以后处理,而不是让所有命令立即通过管道进行。

  • 计算器 计算器处理阶段通过计算输入值的多项式命令,提供了一种近似曲线和表面几何图形的有效方法。

  • 按顶点操作和基元程序集 OpenGL 处理几何基元点、线段和多边形全部由顶点描述。 顶点经过转换和点亮,基元被剪裁到视区,为光栅化做准备。

  • 光栅化 光栅化阶段使用点、线段或多边形的二维描述生成一系列帧缓冲区地址和关联的值。 因此生成的每个片段都会馈送到最后一个阶段(每个片段)操作中。

  • 按片段操作 这些是将数据存储为帧缓冲区中的像素之前对数据执行的最终操作。

    按片段操作包括基于传入和以前存储的 z 值对帧缓冲区的条件更新, (用于 z 缓冲) 和传入像素颜色与存储颜色的混合,以及对像素值进行掩码和其他逻辑操作。

数据可以以像素而不是顶点的形式输入。 像素形式的数据(例如可能描述用于纹理映射的图像)跳过上述第一个处理阶段,而是在像素操作阶段中作为像素进行处理。 执行像素操作后,像素数据为:

  • 存储为纹理内存,用于光栅化阶段。
  • 光栅化,生成的片段合并到帧缓冲区中,就像它们是从几何数据生成的一样。