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