- •Компьютерная графика: лабораторный практикум. Санкт-Петербург
- •Введение
- •1.1. Основные возможности
- •1.2. Интерфейс OpenGl
- •1.3. Архитектура OpenGl
- •1.4. Синтаксис команд
- •1.5. Пример приложения
- •2. Рисование геометрических объектов
- •2.1. Процесс обновления изображения
- •2.2. Вершины и примитивы
- •2.2.1. Положение вершины в пространстве
- •2.2.2. Цвет вершины
- •2.2.3. Нормаль
- •2.2.4..Операторные glBegin / glEnd
- •2.3. Цель, требования и рекомендации к выполнению задания
- •2.4. Задания
- •3. Преобразования объектов
- •3.1. Работа с матрицами
- •3.3. Модельно-Видовые преобразования
- •3.4. Проекции
- •3.5. Область вывода
- •3.6. Цель, требования и рекомендации к выполнению задания
- •3.7. Задания
- •4. Фрактал и фрактальная геометрия
- •4.1. Свойства фракталов
- •4.2. Виды фракталов.
- •4.2.1. Геометрический фрактал
- •4.2.2. Алгебраический фрактал
- •4.2.3. Стохастические фракталы
- •4.3. Способы построения фракталов
- •4.3.2. Система итерирующих функций ifc
- •4.4. Цель, требования и рекомендации к выполнению задания
- •4.5. Задания
- •5. Модели освещения
- •5.1. Геометрические составляющие отраженного света
- •5.2. Диффузная компонента
- •5.3. Зеркальная компонента
- •5.4. Роль фонового света
- •5.5. Комбинирование компонентов освещения
- •5.6. Добавление цвета
- •5.7. Общее уравнение отраженного света
- •5.8. Закраска и графический конвейер
- •5.9. Использование источников света вOpenGl
- •5.9.1. Создание источника света
- •5.9.2. Прожекторы
- •5.9.3. Ослабление света с расстоянием
- •5.9.4. Модель освещения в OpenGl
- •5.9.5. Перемещение источников света
- •5.10. Работа со свойствами материалов в OpenGl
- •5.11. Цель, требования и рекомендации к выполнению задания
- •5.12. Задания
- •6. Отображение отражений и теней.
- •6.1. Отображение отражений
- •6.2. Тени объектов
- •6.2.1. Тени как текстура
- •6.2.2. Построение "спроецированной" грани
- •6.3. Пример реализации “зеркала”.
- •6.3. Цель, требования и рекомендации к выполнению задания
- •6.4. Задания
- •7. Создание приложения
- •Заключение
- •Литература
- •Оглавление
5.4. Роль фонового света
Диффузный и зеркальный компоненты отраженного света находятся путем упрощения "правил", по которым физический свет отражается от физических поверхностей. Включение зависимости этих компонентов от относительных положений глаза, объекта и источников света значительно улучшает реалистичность изображения при визуализациях, которые просто заполняют каркасную модель тенями. Однако стремление иметь простую модель отражения сильно расходится с качественной визуализацией сцены. Тени, например, кажутся неестественно резкими и глубокими. Для смягчения этих теней добавляют еще один, третий компонент света, - фоновый свет.
Фоновое (рассеянное) освещение представляет собой свет, настолько рассеянный в окружающей среде, что его направление невозможно определить – создается впечатление, что он исходит из всех направлений. Фоновое освещение в комнате имеет большую составляющую рассеянного света, так как большая часть света, достигающего глаз, до этого была отражена множеством поверхностей. Когда рассеянный свет сталкивается с поверхностью, он равномерно рассеивается во всех направлениях.
Если использовать только диффузное и зеркальное отражение, то любые части поверхности, заслоненные от точечного источника, вообще не получают света и поэтому рисуются черным цветом.
а
б
Рис. 5.4. Иллюстрация эффекта использования диффузного освещения.
Как пример рис. 5.4. При отображении объекта использовался только диффузное освещение (рис.5.4., а), после чего яркость полученной картинки (рис.5.4., б) была увеличена, что позволило продемонстрировать объекты, нарисованные черным цветом. Это противоречие реальному поведению света; сцены, наблюдаемые нами, всегда кажутся освещенными каким-то мягким светом, не имеющим определенного направления. Этот свет приходит после многочисленных отражений от различных окружающих нас объектов, а также от источников света, заполняющих окружающую среду, таких как свет в окне, лампы. Однако точно моделировать такой свет стоило слишком дорого с вычислительной точки зрения.
Для того чтобы преодолеть трудности, связанные со сплошными черными тенями, вводят равномерное свечение фона - фоновый свет. Источник фонового света не располагается в каком-либо определенном месте, и этот свет распространяется во всех направлениях одинаково. Этот источник света характеризуется интенсивностью Ia. Каждой грани в данной модели соответствует определенное значение коэффициента фонового отражения pa, а член Ia* pa просто добавляется к этому диффузному и зеркальному свету, который попадает в глаз из каждой точки Р на этой грани. Значения Ia и pa обычно подбираются экспериментально путем варьирования различных величин и выбора наиболее подходящих. Недостаток фонового света делает тени слишком глубокими и резкими; избыток же его делает изображение размытым и мягким.
5.5. Комбинирование компонентов освещения
Теперь можно сложить три компоненты освещения - диффузный, зеркальный и фоновый, чтобы получить суммарное количество света I, которое попадает в глаз из точки Р:
, [1 ].
где и.
Величина I зависит от различных интенсивностей источников и коэффициентов отражения объекта, а также от соотношения положений точки Р, глаза и точечного источника света. В OpenGL предоставляется возможность отдельного задания интенсивностей диффузной и зеркальной. На практике обе эти интенсивности обычно имеют одну и ту же величину.