- •Лекция 1 Основные понятия OpenGl
- •1.2 Однородные координаты и матрицы
- •1.3 Поворот точки вокруг прямой заданной точкой а(a,b,c) и направляющим вектором e(l,m,n), , на угол φ.
- •1.4 Система координат
- •1.5 Вершины
- •Лекция 2 Освещение объектов
- •2.1Основные понятия
- •2.2 Задание цвета объекта
- •2.3 Освещение объектов
- •2.3.1 Свойства диффузного отражения
- •2.3.2 Свойства зеркального отражения
- •Лекция 3
- •3.1 Контекст воспроизведения
- •3.2 Стандартные функции библиотеки OpenGl
- •3.3 Функции библиотеки glu
- •3.4 Рекомендации по созданию графических приложений
- •Лекция 4
- •Свойства материалов
- •Установка источников света
- •Модель освещения
- •Смешение цветов
- •4.5 Задание теста глубины
- •Лекция 5 Наложение текстуры на объект
- •Задание параметров текстуры
- •Задание параметров текстуры
- •Взаимодействие текстуры с объектом
- •Привязка координат текстуры к объекту
- •Подготовка текстуры из bmp файла, для случая, когда размеры файла известны
- •Пример инициализации двухмерной текстуры
- •Лекция 6. Буфер трафарета
- •6.1 Тест трафарета
- •6.2 Логические операции с графическими объектами
- •6.2.1 Описание метода вычитания графических объектов
- •Лекция 7. Сплайновые поверхности
- •7.1 Кривые Безье
- •7.2 Отображение кривых Безье в OpenGl
- •7.3 Отображение поверхностей Безье в OpenGl
- •Лекция 8. Выбор графических объектов на экране
- •8.1 Идея метода
- •Лекция 9. Экспорт трехмерных изображений из 3d Studio max
- •9.1 Формат файла gms
- •9.2 Импортирование изображений объектов в программу
- •9.3 Загрузка файла формата gms в Delphi
- •Лекция 10 Вспомогательные функции
- •10.1.Работа с таймером
- •10.2 Обработка нажатия клавиши
- •10.3 Вывод текста на экран
- •Литература
Установка источников света
Для того, что бы объекты в 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]
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).
Модель освещения
Параметры модели освещения задаются командами:
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 цвет пикселя определяется покомпонентным сложением интенсивностей лучей света, поступающих от каждого вида отражения (фонового, диффузного и зеркального) и от каждого источника, поэтому важно следить, что бы, ни один из компонентов результирующего света ни при каких пространственных преобразований, не превышал единицы. Иначе произойдёт искажение цвета объекта.

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