- •Компьютерная графика: лабораторный практикум. Санкт-Петербург
- •Введение
- •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. Создание приложения
- •Заключение
- •Литература
- •Оглавление
Заключение
С момента зарождения компьютерной графики не прекращались попытки достижения большей реалистичности при визуализации трехмерных сцен. Каркасные представления объектов можно нарисовать очень быстро, однако они трудны для восприятия, особенно когда несколько объектов на сцене перекрывают друг друга. Реалистичность значительно возрастает, если грани объектов раскрашиваются каким-либо цветом, а поверхности, которые не должны быть видны, удаляются. Однако изображения, визуализированные таким способом, все же не создают впечатления объектов, расположенных на сцене, освещенной источниками света.
Возникает потребность в модели затенения, которая показывает, как свет отражается от поверхности, - в зависимости от характера этой поверхности и ее ориентации по отношению к источникам света и к глазу камеры. Физический аспект отражения света весьма сложен, поэтому программистами разработан целый ряд аппроксимаций и "трюков", которые делают приемлемый результат и в то же время достаточно эффективны с вычислительной точки зрения. Модель диффузного компонента отражения - одна из наиболее близких к реальности, и она существенно усложняется по мере того, как в ней учитывается все больше и больше ингредиентов. Зеркальные отражения вообще не основываются на каких-либо физических принципах, однако могут адекватно воспроизводить возникновение бликов на блестящих объектах. Фоновый же свет является в чистом виде абстракцией - это упрощенный метод, избавляющий нас от построения многократных взаимных отражений объектов и одновременно делающий тени менее глубокими.
Даже простые модели затенения включают в себя несколько параметров, таких как коэффициенты отражения, описания неровности поверхности и цвет источников света. Библиотека OpenGL предоставляет возможность задавать большинство из этих параметров.
В данном пособии было сконцентрировано внимание на визуализации полигональных каркасных моделей. Полигональные грани особенно просты и описываются небольшим количеством параметров, таких как координаты вершин, нормали в вершинах, цвет поверхностей и материал поверхностей. Отображение окружающей среды создает у наблюдателей понятие об обстановке, окружающей блестящий объект, что может придать сцене больше реалистичности, особенно при анимации. В конце были рассмотрены несколько простых методов для создания теней объектов.
Литература
Эйнджел Э. Интерактивная компьютерная графика. Вводный курс на базе OpenGL, 2 изд. Пер. с англ.- Москва, «Вильямс», 2001.
Порев В.Н. Компьютерная графика. СПб., BHV, 2002.
Шикин А. В., Боресков А. В. Компьютерная графика. Полигональные модели. Москва, ДИАЛОГ-МИФИ, 2001.
Тихомиров Ю. Программирование трехмерной графики. СПб, BHV, 1998.
Performance OpenGL: Platform Independent Techniques. SIGGRAPH 2001 course.
OpenGL performance optimization, Siggraph’97 course.
Visual Introduction in OpenGL, SIGGRAPH’98.
The OpenGL graphics system: a specification (version 1.1).
Программирование GLUT: окна и анимация. Miguel Angel Sepulveda, LinuxFocus.
Дополнительная:
Фоли Дж, Ван Дэм А. Основы интерактивной машинной графики. - М.: Мир, 1985.
Фокс А., Пратт М. Вычислительная геометрия. - М.: Мир, 1982.
Ватолин Д.С. Алгоритмы сжатия изображений. - М.: ВМК МГУ, 1999.
http://graphics.cs.msu.su/courses/cg01b/
Шикин Е.В. Курс компьютерной графики.