OpenGL. Компьютерная графика. Васильев С.А. - 43 стр.

UptoLike

Составители: 

45
Параметр Описание
GL_EMISSION
Изменяет интенсивность излу-
чаемого света материала. Пара-
метр param должен содержать
четыре целых или вещественных
значения интенсивности излучае-
мого света (RGBA) материала. По
умолчанию значение интенсивно-
сти излучаемого света равно (0.0,
0.0, 0.0, 1.0)
GL_AMBIENT_AND_DIF
FUSE
Эквивалентно двум вызовам
команды glMaterial*() со значе-
нием pname GL_AMBIENT и
GL_DIFFUSE и одинаковыми
значениями params
Изменять параметры материала можно и командой
void glColorMaterial (GLenum face, GLenum mode)
Здесь face принимает аналогичные значения, что и в команде glMaterial*(), а mode –
GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR и GL_AMBIENT_AND_DIFFUSE.
По умолчанию используется GL_AMBIENT_AND_DIFFUSE. Параметры материала поверхности, за-
данные аргументами face и mode, принимают значения текущего цвета (предварительно разрешив эту
команду, вызвав glEnable(GL_COLOR_MATERIAL)). В такой ситуации можно изменять параметры
материала для каждой вершины, используя только команду glColor*, что более удобно в некоторых
случаях.
ПРИМЕР ЗАДАНИЯ ПАРАМЕТРОВ МАТЕРИАЛА:
float amb[] = {0.4, 0.3, 0.4}; // Цвет рассеянного отражения
float dif[]={0.7,0.4,0.7}; // Цвет диффузного отражения
float spec[] = {0.5, 0.5, 0.2}; // Цвет зеркального отражения
float shininess = 90; // Степень зеркально отражения
// Установка свойств материала для лицевой поверхности
glMaterialfv (GL_FRONT,GL_AMBIENT, amb); // Для рассеянного света
glMaterialfv (GL_FRONT,GL_DIFFUSE, dif); // Для диффузного отражения.
glMaterialfv (GL_FRONT,GL_SPECULAR, spec); // Для зеркального отражения
//Степень зеркального отражения
glMaterialf (GL_FRONT,GL_SHININESS, shininess);
13.2.2 Задание источников света
При работе с источником света необходимо определить его и присвоить ему порядковый номер.
Для этой цели существует команда
void glLight[i f] (
GLenum light,
GLenum pname,
GLtype param)
void glLight[i f]v (
GLenum light,
GLenum pname,
const GLtype *params)
Аргумент light закрепляет номер за источником света. В качестве номера выступает символическое
имя GL_LIGHTi, где i может принимать значение из диапазона 0 до GL_MAX_LIGHTS. OpenGL под-
держивает восемь источников света одновременно.
Для невекторной формы команды аргумент pname является символьной константой, определяющей
устанавливаемый параметр:
Параметр Описание