Глобальное фоновое освещение можно задать при помощи команды glLightModel{if}v ( GL_LIGHT_MODEL_AMBIENT, ambientColor); Местонахождение наблюдателя оказывает влияние на блики на объектах. По умолчанию при расчетах освещенности считается, что наблюдатель находится в бесконечно удаленной точке, т. е. направление на наблюдателя постоянно для любой вершины. Можно Включить более реалистиче.ское освещение, когда направление на наблюдателя будет вычисляться для каждой вершины отдельно; для этого служит команда
gILightModeli (GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE );
Для задания освещения как лицевых, так и нелицевых граней (для нелицевых граней вектор нормали переворачивается) служит следующая команда: gILightModeli (GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE ); Причем существует возможность отдельного задания свойств материала для каждой из сторон.
Свойства материала, из которого сделан объект, задаются при помощи процедуры void glMaterial{if}[v] (GLenum face, GLenum pname, TYPE param ); Параметр face указывает, для какой из сторон грани задается свойство, и принимает одно из следующих значений: GLBACK, GLFRONTANDBACK, GL FRONT.
Компьютерная графика. Полигональные модели Параметр рпате указывает, какое именно свойство материала задается. Возможные значения представлены в таблице.
Значение |
Значение no умолчанию |
Комментарий |
GL_AMBIENT | (0.2,0.2, 0.2, 1.0) |
Фоновый цвет материала |
GLDIFFUSE | (0.8,0.8, 0.8, 1.0) |
Диффузный цвет материала |
GL_AMBIENT_AND_DIFFUSE |
фоновый и диффузный цвета материала |
|
GLSPECULAR | (0, 0, 0,1) |
Цвет бликов |
GL_SHININESS |
Коэффициент Фонга для бликов |
|
GL_EMISSION | (0, 0, 0,1) |
Цвет свечения материала |
Итоговый цвет вычисляется по следующей формуле:
Color = E + IaKa+2ZSi-j х
кс Л-kid + kqd
((aiKa+m2Oi{{l9n\0}ldiKd +{max{{h9n\0})pIsiKs)
где
E - собственная светимость материала (GLJEMISSION);
la - глобальная фоновая освещенность; Ка - фоновый цвет материала (GL_AMBIENT);
Sf- коэффициент, отвечающий за ослабление света в силу того, что источник имеет коническую направленность, и принимающий следующие значения: 1, если источник не конический,