ТАБЛИЦА 4.2. Обзор функций атрибутов OpenGL
Функция |
Описание |
glutlnitDisplayMode |
Выбирается цветовой режим: GLUT_RGB либо GLUT_INDEX |
glColor* |
Задается цвет RGB или RGBA |
gllndex* |
Задается цвет с использованием элементов таблицы цветов |
glutSetColor (index, r, g, b) ; |
Запись цвета в определенную позицию таблицы цветов |
glEnable (GL_BLEND); |
Активизация функции смешивания цветов |
glBlendFunc (sFact, dFact); |
Задаются коэффициенты смешивания цветов |
glEnableClientState |
Активизируются возможности создания |
(GL_COLOR_ARRAY) ; |
цветовых массивов OpenGL |
glColorPointer(size, type, stride, array); |
Задается цветовой массив RGB |
gllndexPointer(type, stride, |
Задается цветовой массив в режиме цве |
array); |
товых коэффициентов |
Функция |
Описание |
glPointSize (size) |
Задается размер точки |
glLineWidth (width); |
Задается ширина линии |
glEnable |
Активизируется стиль линии |
(GL_LINE_STIPPLE); | |
glEnable |
Активизируется стиль заполнения |
(GL_POLYGON_STIPPLE); | |
glLineStipple (repeat, |
Задается узор стиля линии |
pattern) ; | |
glPolygonStipple |
Задается узор стиля заполнения |
(pattern); | |
glPolygonMode |
Передняя или задняя сторона фигуры изображается как набор сторон или вершин |
glEdgeFlag |
Устанавливается флаг стороны закрашенного многоугольника со значением СЬ_ТШЕ или СЬ_ЕАЬЗЕ, что определяет статус этой стороны |
glFrontFace |
Порядок вершин передней стороны задается как СЬ_ССЮ или СЬ_СЮ |
glEnable |
Активизируется устранение контурных неровностей с помощью функций 6Ь_Р0ШТ_ЗМ00ТН, СЬ_ЬШЕ_ЗМООТН или СЬ_РОЬУС(Ж_ЗМООТН. (Еще нужно активизировать функцию смешивания цветов) |
glGet** |
Различные функции запроса, выявляющие спецификацию типа данных, имя символьной константы параметра состояния и ссылку на массив |
glPushAttrib |
Сохранение всех параметров состояния в заданной группе атрибутов |
glPopAttrib |
Восстановление всех значений параметров состояния, которые были сохранены последними |
ЛИТЕРАТУРА
Методики мягкого окрашивания описываются в статье [97]. Способы устранения контурных неровностей рассматриваются в работах [68, 109, 175, 182, 260, 362, 402]. Приложения, в которых используются оттенки серого цвета, изучаются в работе [67]. Другие рассуждения, связанные с атрибутами и параметрами состояния, можно найти в публикациях [8, 122, 151, 176, 244].
Примеры программ с использованием функций атрибутов OpenGL приведены в книге [400].
Полный перечень функций атрибутов OpenGL можно найти в справочнике [320], а атрибуты символов библиотеки GLUT обсуждаются в книге [174].
УПРАЖНЕНИЯ
4.1. Воспользуйтесь функцией glutSetColor и составьте цветовую таблицу из набора входных цветовых значений.
4.2. С помощью цветового массива и массива вершин составьте описание сцены, содержащей по меньшей мере шесть двухмерных объектов.
4.3. Напишите программу для изображения двухмерной сцены, описанной в предыдущем упражнении.
4.4. С помощью цветового массива и массива вершин составьте описание сцены, содержащей по меньшей мере четыре трехмерных объекта.
4.5. Напишите программу для изображения двухмерной сцены, на которой с помощью шкалы яркости нанесены “облака”, причем форма облаков описывается с помощью точечных узоров на фоне голубого неба. Темные и светлые участки облаков смоделируйте точками разных размеров и при разном расстоянии между этими точками. (Например, очень светлую область можно смоделировать с помощью мелких, расположенных далеко друг от друга светло-серых точек. Точно так же темную область можно передать с помощью больших, расположенных ближе друг к другу темно-серых точек.)