剪裁 (OpenGL)

剪裁分两个步骤进行:

  1. 查看卷剪辑特定于应用程序剪辑。 基元组装后,会立即在眼睛坐标中剪裁使用 glClipPlane 定义的任何剪裁平面。 (OpenGL 要求至少支持六个此类特定于应用程序的剪裁平面。)
  2. 基元由投影矩阵转换为剪辑坐标,并由相应的视图体积剪裁。 此矩阵可由矩阵转换函数控制 (请参阅 矩阵转换) ,但通常由 glFrustumglOrtho 指定。

在剪裁过程中,点、线段和多边形的处理方式不同:

  • 如果点位于剪辑卷) 内,则 (以原始状态保留,如果它们位于剪辑卷) 之外,则将其丢弃 (。
  • 如果线段或多边形的部分位于剪裁量之外,则会在剪裁点处生成新的顶点。
  • 对于多边形,可能需要在剪裁点上生成的新顶点之间构造整个边缘。
  • 对于剪裁的线段和多边形,边缘标志、颜色和纹理信息将分配给所有新顶点。