ВУЗ:
Составители:
Основы компьютерной графики для программистов 91
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
В случае когда pname= GL_TEXTURE_ENV_MODE доступны три варианта вызова
функции:
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL),
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND),
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE).
Когда
pname=GL_TEXTURE_ENV_COLOR, то третий параметр представляет собой
указатель на четырехкомпонентный массив цвета:
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, @CColor),
где переменная описана как
var
CColor: array[1..4]of Glfloat;
По умолчанию для этих команд установлены значения: GL_MODULATE для режима
GL_TEXTURE_ENV_MODE и цвет (0,0,0,0) для режима GL_TEXTURE_ENV_COLOR.
Далее в таблице, в соответствии с [15], приводятся варианты формирования
результирующей функции преобразования с помощью команды
glTexEnv.
Количество
цветовых
компонент
GL_MODULATE GL_DECAL GL_BLEND
1 C
v
=L
t
C
f
нет C
v
=(1-L
t
)C
f
+L
t
C
c
A
v
=A
f
2 C
v
=L
t
C
f
A
v
=A
f
A
t
Нет C
v
=(1-L
t
)C
f
+L
t
C
c
A
v
=A
f
A
t
3 C
v
=C
t
C
f
A=A
C
v
=C
t
A
v
=A
f
нет
4 С
v
=С
t
С
f
A
v
=A
f
A
t
C
v
=(1-A
t
)C
f
+A
t
C
t
A
v
=A
f
нет
Здесь A – значение альфа канала; L – яркость. Для двухкомпонентных изображений
цвет состоит из компонент яркости L и альфа составляющей A. Трехкомпонентный
цвет в качестве яркости использует три цветовые компоненты C, а
четырехкомпонентный цвет использует C и A.
Индексы в формулах: f – фрагмент, на который накладывается текстура, t – образ
текстуры, c – цвет конфигурации текстуры, v – результирующее значение.
Из практических экспериментов можно заметить,
что для обычных матовых
поверхностей хороший визуальный эффект получается использованием режима
GL_MODULATE. Простой режим отображения текстуры с эффектом
Основы компьютерной графики для программистов 91 ____________________________________________________________________________________________________________________ В случае когда pname= GL_TEXTURE_ENV_MODE доступны три варианта вызова функции: glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL), glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND), glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE). Когда pname=GL_TEXTURE_ENV_COLOR, то третий параметр представляет собой указатель на четырехкомпонентный массив цвета: glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, @CColor), где переменная описана как var CColor: array[1..4]of Glfloat; По умолчанию для этих команд установлены значения: GL_MODULATE для режима GL_TEXTURE_ENV_MODE и цвет (0,0,0,0) для режима GL_TEXTURE_ENV_COLOR. Далее в таблице, в соответствии с [15], приводятся варианты формирования результирующей функции преобразования с помощью команды glTexEnv. Количество GL_MODULATE GL_DECAL GL_BLEND цветовых компонент 1 Cv=LtCf нет Cv=(1-Lt)Cf+LtCc Av=Af 2 Cv=LtCf Нет Cv=(1-Lt)Cf+LtCc Av=AfAt Av=AfAt 3 Cv=CtCf Cv=Ct нет A=A Av=Af 4 Сv=СtСf Cv=(1-At)Cf+AtCt нет Av=AfAt Av=Af Здесь A – значение альфа канала; L – яркость. Для двухкомпонентных изображений цвет состоит из компонент яркости L и альфа составляющей A. Трехкомпонентный цвет в качестве яркости использует три цветовые компоненты C, а четырехкомпонентный цвет использует C и A. Индексы в формулах: f – фрагмент, на который накладывается текстура, t – образ текстуры, c – цвет конфигурации текстуры, v – результирующее значение. Из практических экспериментов можно заметить, что для обычных матовых поверхностей хороший визуальный эффект получается использованием режима GL_MODULATE. Простой режим отображения текстуры с эффектом http://www.ksu.ru/persons/9134.ru.html