Вывод треугольников Библиотека OpenGL предназначена для визуализации объектов трехмерного модельного мира. Вершины Vi объектов мира задаются в однородных координатах К = ( V*» Viy, 14, V^). Координаты вершин называются мировыми координатами. И именно они определяют точки модельного мира.

Из этих вершин составляются элементарные отображаемые объекты (примитивы), которые реализуют точки, отрезки, треугольники, четырехугольники, многоугольники, цепочки связанных отрезков, цепочки связанных общими ребрами треугольников и четырехугольников.

Вывод примитива организуется простой последовательностью действий:

1. Вызывается функция glBegiп(< Тип примитива>).

2. Изменяются хранящиеся в конвейере атрибуты вершины. При этом меняются цвет вершины glColor*( ), нормаль glNormal*( ) и текстурные координаты в вершине glTextCoord*( ), материал поверхности glMaterial*(), флаг острого края грани glEdgeFlag*( ) и другие параметры примитива. Атрибутивная информация содержит те данные, которые не обязательно указывать. Если атрибуты не задаются явно, то OpenGL использует ранее заданные значения атрибутов. Если атрибут вообще не задавался, то он имеет значение, назначенное по умолчанию при инициализации, например белый цвет вершины и нормаль, направленную вдоль оси Z.

3. Задаются координаты вершин, например, при помощи функций gl Vertex4d( Vix, Viy, Viz, Viw). Библиотека OpenGL обрабатывает только примитивы, заданные Простейшее приложение OpenGL

в пространстве. Если функция задания вершины использует меньше четырех параметров, то недостающим координатам присваивается значение по умолчанию. Например, при задании точки glVertex2f (GLfloat X, GLfloat Y) координатам Z и W присваиваются значения 0 и 1. Координаты вершины не являются атрибутами, поэтому если координата не задана, библиотека использует значение по умолчанию, а не соответствующую координату ранее переданной ей вершины.

4. Пункты 2 и 3 повторяются в соответствии с числом передаваемых в конвейер вершин, причем в п. 2 передается только информация об изменениях атрибутов.


⇐ Предыдущая| |Следующая ⇒