Входные данные

Конвейер OpenGL требует ввода данных нескольких типов:

  • Вершины. Вершины описывают форму нужного геометрического объекта. Чтобы указать вершины, используйте функции glVertex* в сочетании с glBegin и glEnd для создания точки, линии или многоугольника. Вы также можете использовать glRect для одновременного описания всего прямоугольника.
  • Флаг края. По умолчанию все ребра многоугольников являются пограничными. Используйте glEdgeFlag* для явного задания флага края.
  • Текущая позиция растра. Указанная с помощью glRasterPos*, текущее положение растра используется для определения координат растра для операций рисования пикселей и растровых рисунков.
  • Текущая норма. Нормальный вектор, связанный с определенной вершиной, определяет, как поверхность этой вершины ориентируется в трехмерном пространстве; это, в свою очередь, влияет на то, сколько света получает эта конкретная вершина. Используйте glNormal* для указания нормального вектора.
  • Текущий цвет. Цвет вершины вместе с условиями освещения определяют окончательный, освещенный цвет. Цвет указывается с помощью glColor* в режиме RGBA или с помощью glIndex* в режиме цветного индекса.
  • Текущие координаты текстуры. Указанные с помощью glTexCoord*, координаты текстуры определяют расположение на карте текстуры для связи с вершиной объекта.

Примечание

При вызове glVertex* итоговая вершина наследует текущий флаг края, обычные координаты, координаты цвета и текстуры. Таким образом, glEdgeFlag*, glNormal*, glColor*, и glTexCoord* должны вызываться перед glVertex*, если они должны повлиять на результирующую вершину.