Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
комп графика Лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
200.48 Кб
Скачать
    1. Установка источников света

Для того, что бы объекты в OpenGL отображались с использованием свойств материалов, необходимо включить режим освещения glEnable (GL_LIGHTING); и хотя бы один источник света

glEnable (GL_LIGHT0); В данном примере включается источник света с именем GL_LIGHT0.

OpenGL позволяет установить до девяти источников света GL_LIGHTj, где .

Настроечные параметры источников света устанавливаются командой

glLightf(light,pname, param); - для ввода чисел

glLightfv(light,pname, @param); - для ввода векторов

light-№ источника света, задаваемый символическим именем GL_LITHTi, где

i[0,GL_MAX_LIGHTS]. GL_MAX_LIGHTS<8.

Аргумент pname является символической константой.

Для скалярной команды glLightf

pname

Значение (param)

по умолчанию

GL_SPOT_EXPONENT

GL_SPOT_CUTOFF

GL_CONSTANT_ ATTENUATION

GL_LINEAR_ ATTENUATION

GL_QUADRATIC_ ATTENUATION

n[0,128]

и 1800 -угол разброса света

k0 коэф. в формуле ослабления света

от растояния S

k1

k2

0

1800

1

0

0

Для векторной команды glLightfv значения по умолчанию приведены для нулевого источника,

Для остальных источников значения всех параметров равны нулю.

pname

Значение

по умолчанию

GL_AMBIENT

GL_DIFFUSE

GL_SPECULAR

GL_EMISSION

GL_POSITION

GL_SPOT_DIRECTION

(R,B,G,Alf)-вектор цвета RBGA

(R,B,G,Alf)-вектор цвета RBGA

(R,B,G,Alf)-вектор цвета RBGA

(R,B,G,Alf)-вектор цвета RBGA

(x,y,z,alf) положение источника света

если alf=0, то ослабление от s заблокировано

(x,y,z,alf) –направление источника света

(0.0,0.0,0.0,1.0)

(1.0,1.0,1.0,1.0)

(1.0,1.0,1.0,1.0)

(0.0,0.0,0.0,1.0)

(0,0,1,0)

В процессе работы источники света можно, как включать командой glEnable (GL_LIGHTj);,

так и отключать glDisable(GL_LIGHTj).

    1. Модель освещения

Параметры модели освещения задаются командами:

glLightModef(pname,param);

glLightModefv(pname,param);

pnam

param

GL_LIGHT_MODEL_LOCAL_VIWER

Если param=false, то направление обзора считается параллельным оси –Z (т.е. за экран).

Если param=true, то наблюдатель находится в начале видовой системы координат. (По умолчанию param=false )

GL_LIGHT_MODEL_TWO_SIDE

Если param=false, то задано одностороннее освещение грани, а

если param=true, то двухстороннее. (Одностороннее для лицевой грани. По умолчанию param=false).

GL_LIGHT_MODEL_ AMBIENT

Param, для векторной функции, задаёт значение полной фоновой интенсивности света.

По умолчанию (0.2,0.2,0.2,1)

В OpenGL цвет пикселя определяется покомпонентным сложением интенсивностей лучей света, поступающих от каждого вида отражения (фонового, диффузного и зеркального) и от каждого источника, поэтому важно следить, что бы, ни один из компонентов результирующего света ни при каких пространственных преобразований, не превышал единицы. Иначе произойдёт искажение цвета объекта.