glEnable (GL_BLEND); Чтобы отключить стандартные процедуры смешивания цветов, в OpenGL используется функция

glDisable (GL_BLEND); Если возможность смешивания цветов не активизирована, цвет объекта просто заменит цвет, записанный в буфере кадра в положении этого объекта.

Цвета можно смешивать несколькими различными способами, в зависимости от эффекта, которого требуется достичь, а различные цветовые эффекты возникают при задании двух наборов коэффициентов смешивания. Один набор коэффициентов смешивания задается для текущего объекта в буфере кадра (“объект назначения”), а второй набор коэффициентов - для нового объекта (“источник”). Новый смешанный цвет, который затем загружается в буфер кадра, находится как

(SrRs + DrRd, SgGs + DgGd, SbBs + DbBd, SaAs + DaAd), (4.1)

где цветовые компоненты RGB А источника - (RS,GS, Bs, As), цветовые компоненты назначения - (Rd,Gd, Bd, Ad), коэффициенты смешивания источника - (Sr, Sg, Sb, Sa), а коэффициенты смешивания назначения - (Dr, Dg. Df,, Da). Найденные значения компонентов комбинированного цвета должны попадать в диапазон от 0.0 до 1.0. Следовательно, любой сумме, превышающей 1.0, присваивается значение 1.0, а любой сумме, меньшей, чем 0.0, присваивается значение 0.0.

Значения коэффициентов смешивания выбираются с помощью следующей функции OpenGL:

glBlendFunc (sFactor, dFactor); Каждому из параметров sFactor и dFactor, т.е. коэффициентам источника и назначения, присваиваются символьные константы OpenGL, задающие предопределенный набор из четырех коэффициентов смешивания. Например, константа GL_ZERO дает коэффициенты смешивания (0.0, 0.0, 0.0, 0.0), а константа GL_ONE дает набор (1.0, 1.0, 1.0, 1.0). Можно присвоить всем четырем коэффициентам смешивания либо значение альфа назначения, либо значение альфа источника, что делается с помощью константы GL_DST_ALPHA или GL_SRC_ALPHA. К числу остальных констант OpenGL, с помощью которых задаются коэффициенты смешивания, относятся GL_ONE_MINUS_DST_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_COLOR и GL_SRC_COLOR. Эти коэффициенты смешивания часто используются для моделирования прозрачности, и они подробно рассматриваются в разделе 10.19. По умолчанию параметру sFactor присваивается значение GL_ONE, а значение параметра dFactor по умолчанию равно GL_ZERO. Следовательно, по умолчанию значения коэффициентов смешивания приводят к тому, что новые цветовые значения заменяют текущие значения в буфере кадра.

В библиотеку GLUT пакета OpenGL включены дополнительные функции, в частности, процедура установки смешанного цвета и процедура задания уравнения смешивания.

ЦВЕТОВЫЕ МАССИВЫ В OpenGL

Цветовые значения для описания сцены можно также задавать вместе с координатными значениями в массиве вершин (раздел 3.17). Это можно сделать либо в режиме RGB, либо в индексном цветовом режиме. Как и для массива вершин, сначала нужно активизировать возможность создания цветового массива OpenGL:

glEnableClientState (GL_COLOR_ARRAY); Затем для цветового режима RGB задается положение и формат цветовых компонентов с помощью функции


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