Динамическая 3D графика

advertisement
ДИНАМИЧЕСКАЯ 3D ГРАФИКА
(4 курс, 7 семестр, 36 часов, диф.зачет)
Доцент Виктор Алексеевич Дебелов
Программа курса лекций
1. Цели и задачи курса. Реалистическая визуализация. Введение,
исторический обзор алгоритмов и аппаратных возможностей. Wireframe.
Удаление невидимых линий. Алгоритм подвижного горизонта. Очерки или
линии силуэта.
2. Упрощенная модель зрения (или сведения из психофизиологии –
колбочки, палочки, цвет). Полосы Маха. Диапазон различаемых яркостей.
Локальная модель освещенности, рассеянный свет, диффузное отражение,
зеркальное отражение. Закраска по Гуро, закраска по Фонгу.
Полигональные приближения гладких поверхностей. Модель ТорренсаСпэрроу.
3. Простейшая
трассировка
лучей.
Пространственная
сцена.
Отраженный и преломленный лучи. Нахождение пересечений луча с
основными элементами сцены: а) сфера; б) бокс; в) плоский многоугольник
в пространстве.
4. Алгоритм обратной рекурсивной лучевой трассировки. Основные
элементы сцены. Камера. Правила ограничения дерева трассировки.
Методы повышения качества изображений (удаление лестничного
эффекта) – рендеринг на субпиксельном уровне, фильтрация, .
5. Методы ускорения лучевой трассировки. Пространственные
структуры данных: иерархические ограничивающие объемы (боксы,
сферы), сетки, иерархические сетки, октодеревья, kd-деревья. Достоинства
и недостатки этих структур при изображении динамических сцен.
Кластеризация источников света.
6. Недостатки рекурсивной лучевой трассировки – отсутствие
диффузных переотражений. Компонент рассеянного света. Метод световых
сеток. Световые сетки прямой и непрямой освещенности.
7. Введение в MS DirectX. Общие сведения об объектноориентированной системе SmogDX: сцена (основной объект), камера, порт
вывода, мировая система координат, фреймы, модельная система
координат, геометрические элементы, источники света, материалы,
текстуры, анимации.
8. Основной объект – сцена. Пульс – динамика сцены. Методы класса
CD3DMainObject.
9. Класс CD3DFrame. Иерархическая структура фреймов. Управление
фреймами на основе однородных преобразований координат. Создание
геометрии сцены (полигональные сетки). Окрашивание поверхностей
сцены, применение полупрозрачных цветов. Динамика – поступательная и
вращательная скорости фрейма. Основные методы класса.
10. Методика программирования геометрических классов в системе
SmogDX. Методика создания простейшего приложения. Класс
CD3DMaterial. Расчет освещенности в точке в зависимости от материала.
Методы класса. Приписывание материала фрейму.
11. Класс CD3DTexture. Понятие текстуры, текстурные координаты.
Виды покрытий. Текстурирование поверхностей (сеток) сцены. Класс
CD3DDecal. Размещение изображения фона на порту вывода.
12. Программирование динамики сцены. Использование скоростей
фрейма. Простейший морфинг – изменение положения вершин в сетках.
Класс CD3DAnimation – создание сценариев поведения фреймов.
13. Программирование указаний мышью на трехмерные объекты сцены.
Программирование теней. Обзор инструментов для создания динамических
интерактивных приложений в среде SmogDX.
14. Ведение в OpenGL. Совпадающие и различающиеся характеристики
OpenGL и SmogDX или OpenGL и DirectX.
15. Создание приложений на OpenGL в среде Windows.
16. Уравнение визуализации – уравнение баланса освещенности в сцене.
Особенности лучевой трассировки Монте-Карло. Диффузные сцены.
Излучательность (radiosity), уравнение излучательности. Расчет методом
конечных элементов.
17. Методы расчета коэффициентов формы: полукуб, Монте-Карло.
Обзор курса.
ДИНАМИЧЕСКАЯ 3D ГРАФИКА
(4 курс, 7 семестр, 36 часов)
Программа лабораторных занятий (терм. класс)
доцент Виктор Алексеевич Дебелов
Задания
Задание № 1
(сдать к концу 8-й учебной недели)
Лучевая трассировка
Разработать программу в среде VisualStudio 6.0 на языке C++,
реализующую алгоритм рекурсивной лучевой трассировки для
визуализации пространственных сцен. Выполняется в 3 этапа:
1. Программа выбора ракурса. Создается простая сцена, состоящая из 1-3
примитивов. Минимальный набор примитивов: плоскость, куб, сфера.
Вычисляется габаритный бокс сцены. Пользователь при помощи мыши
осуществляет повороты и перемещения бокса для достижения
требуемого ракурса. Разработка – 4 часа. Сдача – конец 2-й учебной
недели.
2. Разработать библиотеку функций, вычисляющих пересечение луча со
сферой, с боксом, с плоским выпуклым многоугольником в
пространстве. Разработать функции, вычисляющие: нормальный
вектор к примитиву в указанной точке, отраженный вектор,
преломленный
вектор.
Для
тестирования
предлагается
унифицированный формат файла. Разработка – 4 часа. Сдача – конец
4-й учебной недели.
3. Разработать программу лучевой трассировки на основе программы,
выполненной на этапе 1, и библиотеки функций, выполненной на
этапе 2. Характеристики программы: а) возможен выбор ракурса
изображения сцены в интерактивном режиме (см. этап 1), разрешение
изображения определяется клиентской областью окна приложения; б)
чтение описания сцены из файла (унифицированный формат); в) все
действия выполняются с использованием библиотеки функций,
разработанных на этапе 2; г) регулируется глубина дерева трассировки
(от одного до трех отражений); д) один из объектов сцены должен быть
в
движении
–
имитация
смазывания
изображения;
е)
включение/выключение гамма-коррекции. Разработка – 8 часов. Сдача
– конец 8-й учебной недели.
Задание № 2
(сдать к концу 14-й учебной недели)
Динамическое приложение SmogDX
Разработать динамическое приложение, используя систему классов
SmogDX в среде VisualStudio 6.0 на языке C++. Выполняется в 3 этапа
1. Простейшее приложение. Разработать собственный геометрический
класс. Разработка – 2 часа. Сдача – конец 10-й учебной недели.
2. Разработать сценарий анимационного приложения. Запрограммировать
геометрические элементы и анимацию элементов сцены. Источники
освещения. Разработка – 6 часов. Сдача – конец 12-й учебной недели.
3. Применить текстурирование объектов сцены, применить 2-3
материала, использовать 1-2 тени, использовать указание на
изображение трехмерного объекта. Разработка – 4 часа. Сдача – конец
14-й учебной недели.
Задание № 3
(сдать к концу 17-й учебной недели)
Динамическое приложение OpenGL
Разработать несложное динамическое приложение, используя библиотеку
OpenGL в среде VisualStudio 6.0 на языке C++. Программа должна
основываться на иерархическом построении объектов, использовать
текстуры, дисплейные списки и стеки координатных преобразований.
Разработка – 6 часов. Сдача – конец 17-й учебной недели.
Оценка на дифференцированном зачете по курсу "Динамическая 3D
графика" выставляется после устного ответа с учетом:
 трех предварительных отметок по заданиям 1 – 3;
 оценки, выставляемой преподавателем за работу в семестре с
учетом своевременной сдачи заданий.
При проверке программ на всех этапах существенными будут
следующие факторы:
 Своевременность сдачи программ. Все программы сдаются по
электронной почте по установленным в курсе правилам. Например,
неверная тема письма считается грубейшей ошибкой. Временем
предъявления программы считается время отправки письма. Это время
должно быть не позднее, чем 24:00 субботы указанной учебной недели.
 Полнота, недвусмысленность и краткость описания особенностей
авторской реализации.
 Полнота учета требований к программе.
 Реализация дополнительных эффектов сверх требований.
1.
2.
3.
4.
5.
6.
7.
8.
Литература
Дж. Фоли, А. вэн Дэм. Основы интерактивной машинной графики. В
двух книгах. Пер. с англ.-М.:Мир,1985.- 368 с.ил.
А. Фокс, М. Пратт. Вычислительная геометрия. Применение в
проектировании и на производстве. Пер. с англ. – М.: Мир, 1982.
Е.В. Шикин, А.В. Боресков. Компьютерная графика. Динамика,
реалистические изображения – М.: "ДИАЛОГ - МИФИ", 1995.
В.А.Дебелов, Ю.А.Ткачев. SmogDX – объектно-ориентированная
графика для Windows (DirectX и Visual C++). Новосибирск: Сибирское
университетское изд-во, 2001, 311 с.
В.А.Дебелов, Ю.А.Ткачев. Объектно-ориентированная система
машинной графики для Windows (C++ и Microsoft DirectX). –
Новосибирск: ИВМиМГ СО РАН, 1999.
Д. Роджерс. Алгоритмические основы машинной графики. Пер. с англ.
– М.: Мир, 1989. (2-ое издание – 2001 год).
Н. Томпсон. Секреты программирования трехмерной графики для
Windows 95. СПб: Питер, 1997. – 352 с.
Ю. Тихомиров. Программирование трехмерной графики – СПб.: БХВ –
Санкт-Петербург, 1999. – 256 с.
Download