Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Модель освещенности с использованием источника света и цвета вершины




В этой модели освещенности рассмотрим свойства источников света в OpenGL. Система OpenGL версии 1 поддерживает всего 8 или менее одновременно действующих источников света. В общем случае для выяснения максимально разрешенного количества источников света используем функцию glGetIntegerv(GL_MAX_LIGHTS, @num), где num – целочисленная переменная, в которую запишется результат - количество источников света.

Источники света задаются именованными константами вида GL_LIGHTх,где вместо х подставляется номер источника, начиная с нулевого. Например, включение первого источника минимально достигается вызовом двух команд:

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

 

Источник света в OpenGL состоит из нескольких цветовых составляющих: рассеянный свет – Ambient, диффузный – Diffuse, зеркальный – Specular. Хотя кажется что это противоречит здравому смыслу, но в OpenGL вполне можно настроить источник света так, например, чтобы он “светил” красной рассеянной составляющей, зеленой диффузной составляющей и синей зеркальной. В результате можно получить очень интересные визуальные эффекты. Рассмотрим фрагмент программы настройки компонент источника света с помощью векторной версии функции glLight:

var

//параметры источника света

ambient: array[1..4]of GLfloat = (0.7, 0.9, 0.9, 1.0);

diffuse: array[1..4]of GLfloat = (1.0, 1.0, 1.0, 1.0);

specular: array[1..4]of GLfloat = (1.0, 1.0, 1.0, 1.0);

begin

...

glLightfv(GL_LIGHT0, GL_AMBIENT, @ambient);

glLightfv(GL_LIGHT0, GL_DIFFUSE, @diffuse);

glLightfv(GL_LIGHT0, GL_SPECULAR, @Specular);

 

Функция glLight может использоваться и для установок некоторых других параметров источника света.

В качестве значений цветовых составляющих используются четырехкомпонентные массивы RGBA. Первый вызов glLight в нашем примере задает цвет рассеянной составляющей. Если не указывать ее явно, то по умолчанию система считает что рассеянный свет отсутствует: (0.0, 0.0, 0.0,1.0).

Второй вызов устанавливает диффузную составляющую, которая для нулевого источника по умолчанию равняется белому цвету (1.0, 1.0, 1.0, 1.0), а для остальных – черному, т.е. отсутствует: (0.0, 0.0, 0.0, 1.0). Третий вызов glLightfv с параметром GL_SPECULAR определяет зеркальную составляющую. По умолчанию интенсивность зеркальной составляющей для нулевого источника равняется (1.0, 1.0, 1.0, 1.0), а для остальных (0.0, 0.0, 0.0,1.0).

Другие параметры функции glLight позволяют настраивать такие характеристики источника света как его направленность, положение в пространстве, формулу ослабления интенсивности в зависимости от удаления от поверхности, распределение светового пятна. По умолчанию создается точечный источник с равномерным распределением интенсивности, без ослабления в зависимости от удаленности.

Как видно из рис. 44, на модель освещенности с использованием источника света и цвета вершины также влияют установки смешения цветов, рассмотренные выше.

На рис. 46 показан пример освещения сферы точечным источником света в модели освещенности с использованием источника света и цвета вершины.

Рис. 266. Освещение сферы точечным источником света в модели освещенности с использованием источника света и цвета вершины.





Поделиться с друзьями:


Дата добавления: 2016-10-30; Мы поможем в написании ваших работ!; просмотров: 442 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2450 - | 2243 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.