Первые три элемента этого массива задают цветовое значение RGB, следующие три значения - набор координат вершины (х, у, z), и такой порядок сохраняется до последнего описания цвета и вершины. Параметр offset устанавливается равным количеству байтов между соседними цветовыми значениями или значениями координат вершин, которое в обоих случаях равно 6*sizeof(GLint). Цветовые значения начинаются с первого элемента объединенного массива, который равен hueAndPt [ 0 ], а значения координат вершин начинаются с четвертого элемента, который равен hueAndPt [3].

Поскольку сцена, как правило, состоит из нескольких объектов, у каждого из которых есть множество плоских поверхностей, в пакете OpenGL предлагается функция, определяющая сразу все массивы вершин и цветов, а также другие виды информации. Если заменить цветовые значения и координаты вершин из вышеприведенного примера на значения с плавающей запятой, то можно воспользоваться этой функцией:

gllnterleavedArrays (GL_C3F_V3F, 0, hueAndPt); Первый параметр - это константа OpenGL, которая указывает на то, что и цвет (С), и координаты вершин (V) описываются с помощью трехкомпонентных значений с плавающей запятой. Элементы массива hueAndPt должны объединяться с цветовым значением для каждой вершины из списка перечисленных перед этим координат. Кроме того, эта функция автоматически активизирует как цветовые массивы, так и массивы координат.

В индексном цветовом режиме массив цветовых индексов задается с помощью функции

gllndexPointer (type, stride, colorlndex); Цветовые индексы перечисляются в массиве colorlndex, а параметры type и stride такие же, как и в функции glColorPointer. Параметр size не нужен, поскольку индексы цветовой таблицы описываются с помощью одного значения.

ДРУГИЕ ФУНКЦИИ ЦВЕТА В OpenGL

В первом примере программы в разделе 2.9 мы ввели следующую функцию, которая служит для выбора цветовых компонентов RGB для окна изображения.

glClearColor (red, green, blue, alpha); Каждому цветовому компоненту в этом обозначении (красному, зеленому и синему), а также параметру альфа присваивается значение с плавающей запятой в диапазоне от 0.0 до 1.0. По умолчанию значения всех четырех параметров равны 0.0, что дает черный цвет. Если каждому цветовому компоненту присвоить значение 1.0, то цветом чистого окна изображения будет белый. Оттенки серого цвета можно по лучить при одинаковых значениях всех цветовых компонентов в диапазоне от 0.0 до

1.0. Четвертый параметр alpha представляет собой опцию для смешивания предыдущего цвета с текущим цветом. Смешивание происходит только в том случае, если активизирована возможность смешивания OpenGL; смешивание цветов невозможно, если значения задаются в виде цветовой таблицы.

Как отмечалось в разделе 3.19, в пакете OpenGL существует несколько буферов цвета, которые можно использовать в качестве текущего буфера регенерации при изображении сцены, а функция glClearColor служит для спецификации цвета во всех цветовых буферах. После этого к цветовым буферам применяется операция закрашивания цветом чистого окна изображения, что выполняется с помощью команды:


⇐ вернуться назад | | далее ⇒