glPushAttrib (attrGroup); Параметру attrGroup присваивается значение символьной константы OpenGL (GL_POINT_BIT, GL_LINE_BIT или GL_POLYGON_ BIT), которая определяет группу атрибутов. Для сохранения параметров цвета используется символьная константа GL_CURRENT_BIT. Все параметры состояния во всех группах атрибутов можно сохранить с помощью константы GL_ALL_ATTRIB_BITS. Функция glPushAt-trib служит для занесения всех параметров, которые входят в заданную группу, в стек атрибутов.

Можно также сохранять параметры из двух или нескольких групп, объединяя соответствующие им символьные константы с помощью логической операции ИЛИ. Используя следующий оператор, все параметры точек, прямых линий и многоугольников заносят в стек атрибутов.

glPushAttrib (GL_POINT_BIТ | GL_LINE_BIT | GL_POLYGON_BIT); Записав группу параметров состояния, все значения из стека атрибутов можно восстановить с помощью такой функции.

glPopAttrib ( ); В функции glPopAttrib нет аргументов, поскольку она служит для изменения текущего состояния, а для этого используются все значения из стека.

Указанные команды для сохранения и переназначения параметров состояния используют стек атрибутов сервера. В пакете OpenGL есть еще стек атрибутов клиента для сохранения и переопределения параметров состояния клиента. Функциями доступа в этот стек являются glPushClientAttrib и glPopClientAttrib. Существует только две группы атрибутов клиента: одна для режимов сохранения пикселей, а другая - для массивов вершин. К параметрам сохранения пикселей относится такая информация, как расположение байтов и тип массивов, которые используются для записи фрагментов изображения. Параметры массива вершин дают информацию о текущем состоянии массива вершин, например, об активизации различных массивов.

РЕЗЮМЕ

Атрибуты служат для управления характеристиками изображения графических примитивов. Во многих графических системах значения атрибутов сохраняются как переменные состояния, и примитивы создаются с учетом текущих значений атрибутов. Когда меняется значение переменной состояния, это отражается только на тех примитивах, которые задаются после этого изменения.

Общим атрибутом для всех примитивов является цвет, который чаще всего задается в виде компонентов 1ЮВ (или 1ШВА). Значения для красного, зеленого и синего компонентов записываются в буфер кадра, а затем используются для управления интенсивностью трех электронных пушек 1ШВ-монитора. Кроме того, выбор цвета можно осуществлять и с помощью цветовых поисковых таблиц. В этом случае цвет в буфере кадра обозначается как элемент таблицы, а значение, которое находится на месте этого элемента в таблице, представляет собой определенный набор цветовых компонентов 1ЮВ. Цветовые таблицы удобны в приложениях, связанных с визуализацией данных и обработкой изображений, а также их можно использовать для предоставления широкого диапазона цветов, не требующего большого буфера кадра. В пакетах компьютерной графики часто предлагаются опции для использования цветовых таблиц или значений, записанных непосредственно в буфер кадра.


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