Поделиться через


Вырезка (OpenGL)

Вырезка выполняется в два этапа:

  1. Просмотр обрезки томаПрирезка для приложений. Сразу после сборки примитивы обрезаются в координатах глаз по мере необходимости для любых обрезных плоскостей, определенных с помощью glClipPlane. (OpenGL требует поддержки по крайней мере шести таких плоскостей отсечения для конкретных приложений.)
  2. Примитивы преобразуются матрицей проекции в координаты клипа и обрезаются соответствующим объемом представления. Эта матрица может управляться функциями преобразования матриц (см. раздел Матричные преобразования), но обычно указывается с помощью glFrustum или glOrtho.

Точки, сегменты линий и многоугольников обрабатываются по-разному во время отсечения:

  • Точки сохраняются в исходном состоянии (если они находятся в томе клипа) или отбрасываются (если они находятся за пределами тома клипа).
  • Если части сегментов линий или многоугольников находятся за пределами обрезного тома, в точках клипа создаются новые вершины.
  • Для многоугольников может потребоваться построить весь ребер между новыми вершинами, созданными в точках клипа.
  • Для обрезанных сегментов линий и многоугольников всем новым вершинам назначается флаг края, цвет и текстура.