ВУЗ:
Составители:
Рубрика:
49
// Задаем исходные значения параметров материала сферы
GLfloat m_specular[]={1.0,1.0,1.0,1.0}; // Зеркальный цвет
GLfloat m_shininess[]={40.0}; // и его пространственное распределение
// Задаем исходные значения параметров источника света
GLfloat Ambient[]={0.5,0.5,0.5,1.0}; // Фоновое освещение
GLfloat Diffuse[]={1.0,1.0,1.0,1.0}; // Диффузное освещение
GLfloat Specular[]={1.0,1.0,1.0,1.0}; // Зеркальное отражение
GLfloat Position[]={1.0,1.0,1.0,1.0}; // Позиция света
…
// Процедура начальной установки
GLvoid Initial(GLsizei w, GLsizei h)
{
Resize (w, h);
glClearColor(0.0,0.0,0.0,0.0);
// Устанавливаем параметры материала
glMaterialfv(GL_FRONT,GL_SPECULAR,m_specular);
glMaterialfv(GL_FRONT,GL_SHININESS,m_shininess);
// Устанавливаем параметры источника света
glLightfv(GL_LIGHT0,GL_POSITION, Position);
glLightfv(GL_LIGHT0,GL_AMBIENT, Ambient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,Diffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,Specular);
// Устанавливаем параметры источника света
glEnable(GL_LIGHTING); // Разрешение текущей освещенности
glEnable(GL_LIGHT0); // Включение GL_LIGHT0 источник света
glEnable(GL_DEPTH_TEST); // Включаем тест глубины
}
…
GLvoid DrawPrim()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
quadratic=gluNewQuadric();
gluSphere (quadratic,1 ,40 ,40);// Рисуем сферу
}
13.2.3 Задание модели освещения
Для задания свойств модели освещения используются команды
void glLightModel[i
f](
GLenum pname,
GLenum param)
void glLightModel[i f]v (
GLenum pname,
const GLtype *params)
Аргумент pname определяет изменяемый параметр модели освещения и может принимать следую-
щие значения в виде символьных констант (param – конкретное значение параметра).
pname
Значение
GL_LIGHT_MODEL_LOCAL_VI
EWER
• ОПРЕДЕЛЯЕТ
СПОСОБ ВЫЧИСЛЕ-
НИЯ ЗЕРКАЛЬНОГО
ОТРАЖЕНИЯ. ЕСЛИ
PARAM = GL_FALSE, ТО
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »