ВУЗ:
Составители:
Основы компьютерной графики для программистов 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
