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