gllndexi (196); Всем примитивам, которые будут описываться после этого оператора, будет присваиваться значение цвета, записанное в этом месте цветовой таблицы, пока текущий цвет не изменится.
В корневой библиотеке OpenGL нет функций для занесения значений в цветовую поисковую таблицу, поскольку стандартные процедуры для обработки таблиц являются частью системы окон. Кроме того, некоторые системы окон поддерживают несколько таблиц цветов, тогда как в других системах есть только одна, и выбор цветов ограничен. Впрочем, есть стандартная процедура библиотеки GLUT, которая взаимодействует с системой окон и заносит описания цветов в таблицу в позицию с заданным индексом:
glutSetColor (index, RED, GREEN, BLUE); Цветовым параметрам RED, GREEN и BLUE присваиваются значения с плавающей запятой в диапазоне от 0.0 до 1.0. Затем этот цвет заносится в таблицу в позицию, заданную с помощью параметра index.
Стандартные процедуры для обработки трех других цветовых таблиц предлагаются как дополнение к корневой библиотеке OpenGL. Эти стандартные процедуры являются частью набора для создания изображения OpenGL. Цветовые значения, которые хранятся в этих таблицах, можно использовать для изменения значений пикселей при их обработке в различных буферах. Несколько примеров использования этих таблиц - установка эффекта фокусировки камеры, отфильтровка определенных цветов на изображении, увеличение определенных интенсивностей или регулировка уровня яркости, преобразование черно-белых фотографий в цветные и устранение контурных неровностей изображения. Кроме того, эти таблицы можно использовать для изменения цветовых моделей, т.е. можно поменять цвета RGB на другое описание с помощью трех других “основных” цветов (голубой, пурпурный и желтый).
Отдельная цветовая таблица из набора для создания изображений в OpenGL активизируется с помощью функции glEnable при использовании одного из трех названий таблиц: GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE или GL_POST_COLOR_MATRIX_COLOR_TABLE. Затем можно воспользоваться стандартными процедурами из набора для создания изображений и выбрать определенную таблицу цветов, задать значения таблицы цветов, скопировать значения из таблицы или указать, какой компонент цвета пикселя требуется изменить и как именно это нужно сделать.
СМЕШИВАНИЕ ЦВЕТОВ В OpenGL
Во многих приложениях было бы удобно сочетать цвета накладывающихся друг на друга объектов или смешивать цвет объекта с цветом фона. Приведем несколько примеров: имитация эффекта мазка кисти, формирование сложного изображения, состоящего из нескольких рисунков, моделирование прозрачности и устранение неровностей контуров объектов сцены. В большей части графических пакетов предлагаются различные способы создания разных эффектов смешивания цветов. Эти процедуры называются функциями смешивания цветов или функциями составления изображений. В пакете OpenGL цвета двух объектов можно смешать, сначала загрузив в буфер кадра один объект, а затем объединив цвет второго объекта с цветом из буфера кадра. Текущий цвет в буфере кадра называется в OpenGL цветом назначения, а цвет второго объекта - цветом источника. Смешивание можно выполнять только в режиме RGB или RGBA. Чтобы применить смешивание цветов в приложении, сначала нужно активизировать эту возможность пакета OpenGL с помощью такой функции: