1. Цели и задачи дисциплины
1.1 Цель преподавания дисциплины
Компьютерная графика - интенсивно развивающаяся в настоящее время область применения средств вычислительной техники. Подавляющая часть вопросов, рассматриваемых под общим наименованием "компьютерная графика", фактически представляет собой приложение к другим областям применения вычислительной техники, в том числе к структурам данных, операционным системам и разработкам аппаратного обеспечения. Поскольку вопросы программной и аппаратной поддержки компьютерной графики так или иначе освещаются в курсах по вычислительной технике и программированию, то основной целью данной дисциплины является рассмотрение базовых алгоритмов так называемого графического конвейера (Graphic Pipeline), представляющего собой логически связанную последовательность (или группу) вычислений, которые синтезируют на выходе системы образ пространственной сцены. Конвейер разделен на ряд этапов, на каждом из которых реализуется некоторая функция. В курсе рассматривается графический конвейер, условно разделенный на две стадии: геометрические преобразования и рендеринг (rendering). На стадии геометрических преобразований в курсе рассматриваются следующие вопросы:
· аппроксимация трехмерных объектов пространственной сцены, которые в общем случае представляют собой криволинейные поверхности, множеством многоугольников (полигонов);
· алгоритмы модельных преобразований, такие как сдвиг, поворот и масштабирование, а также алгоритмы преобразования из глобального пространства в пространство наблюдения (world-to-viewspace transform), а из него, в свою очередь, и преобразования в "окно" наблюдения (viewspace-to-window transform), включая и проецирование с учетом перспективы;
· алгоритмы удаления невидимых поверхностей;
· модели освещенности, с учетом которых формируется эффект освещения объектов;
· основные алгоритмы построения теней.
На стадии рендеринга в курсе основное внимание обращено на рассмотрение следующих вопросов:
· сортировка по Z-буферу и смешение текстур, а также алгоритмы альфа-буферизации;
· алгоритмы наложения текстуры;
· основные алгоритмы закраски (по Ламберту, Гуро, Фонгу);
· алгоритмы сглаживания (антиэлайзинг) для устранения эффекта дискретизации, ступенчатости изображения на границе объектов.
Кроме этого, в курсе рассматриваются методы воспроизведения кривых и поверхностей произвольного вида.
1.2 Задачи изучения дисциплины
В процессе обучения студент должен получить теоретические знания и приобрести практические навыки в вопросах разработки и реализации графического конвейера и методов воспроизведения поверхностей произвольного вида. По окончании изучения данной дисциплины студент должен знать:
· методы организации структуры изображения,
· алгоритмы преобразования области изображения,
· элементарные процедуры преобразования двумерных и трехмерных изображений (поворот, сдвиг, масштабирование, перспектива),
· методы совмещения элементарных преобразований двумерных и трехмерных изображений,
· наиболее известные алгоритмы удаления невидимых линий и поверхностей при воспроизведении изображений сложных пространственных сцен,
· модели освещенности, с учетом которых формируется эффект освещения объектов,
· основные алгоритмы построения теней,
· алгоритмы смешения текстур, алгоритмы альфа-буферизации;
· алгоритмы наложения текстуры;
· основные алгоритмы закраски (по Ламберту, Гуро, Фонгу);
· алгоритмы сглаживания (антиэлайзинг) для устранения эффекта дискретизации, ступенчатости изображения на границе объектов.
· процедуры разложения в растр простейших кривых,
· алгоритмы интерполирования и аппроксимации кривых и поверхностей произвольного вида,
и уметь:
· использовать полученные теоретические знания для программной реализации любых этапов графического конвейера,
· использовать методы интерполирования и аппроксимации кривых и поверхностей произвольного вида для реализации программ визуального представления данных поверхностей в интерактивном режиме,
· оценивать затраты в вычислительных ресурсах при практической реализации графических процедур.
2. Содержание дисциплины
2.1 Наименование тем, их содержание, объем в часах лекционных занятий.
Введение. Определение понятия интерактивная машинная графика. Основные направления изучения и исследования, связанные с термином "компьютерная графика". Понятие графического конвейера и его этапов. Цели и задачи курса. Рекомендуемая литература.
Объем в часах:
лекционных аудиторных занятий - 2.
Литература/1,2,3,4/
Тема 1. Двумерные изображения и их преобразования. Операции сдвига, поворота, масштабирования и их совмещение.
Объем в часах:
лекционных аудиторных занятий - 2.
Литература /1,2,3,4,6,7/
Тема 2. Трехмерные изображения. Перспективное изображение трехмерных объектов. Ортогональное и центральное проецирование. Представление поворота, масштабирования, сдвига и перспективы с помощью матрицы размером 4х4.
Объем в часах:
лекционных аудиторных занятий - 2.
Литература /1,2,3,4,6,7/
Тема 3. Удаление невидимых линий и затенение. Основные функции анализа изображений. Метод количественной невидимости Аппеля. Метод приоритетов Энкорнако. Алгоритм Робертса. Алгоритм Варнока. Алгоритм сканирующей прямой Уоткинса. Алгоритм, использующий z-буфер. Сравнительные характеристики алгоритмов удаления невидимых линий и поверхностей.
Объем в часах:
лекционных аудиторных занятий - 10.
Литература /1,2,3,4,6,7/
Тема 4. Модели освещенности. Диффузное отражение света. Зеркальное отражение и преломление света. Модель освещенности Фринеля. Модель освещенности Уиттеда. Модель освещенности Фонга. Метод обратной трассировки лучей.
Объем в часах:
лекционных аудиторных занятий - 8.
Литература /1,2,3,4,6,7/
Тема 5. Алгоритмы построения тени. Алгоритм преобразования "на землю". Построение теневой маски и проективное наложение. Построение полутеней. Теневые объемы.
Объем в часах:
лекционных аудиторных занятий - 8.
Литература /1,2,3,4,6,7/
Тема 6. Рендеринг. Сортировка по Z-буферу и смешение текстур. Наложение текстуры. Точное текстурирование. Аффинное текстурирование. Перспективно-корректное текстурирование. Параболическое текстурирование. Билинейная фильтрация текстур. Проецирование текстур. Мипмэппинг.
Объем в часах:
лекционных аудиторных занятий - 8.
Литература /1,2,3,4,6,7/
Тема 7. Методы закраски. Закраска по Ламберту. Закраска по Гуро. Закраска по Фонгу.
Объем в часах:
лекционных аудиторных занятий - 6.
Литература /1,2,3,4,6,7/
Тема 8. Алгоритм сглаживания (аnti-aliasing). Сглаживание методом усреднения по площади. Субпиксельное сглаживание. Улучшение качества изображения фильтрацией.
Объем в часах:
лекционных аудиторных занятий - 8.
Литература /1,2,3,4,6,7/
Тема 9. Разложение в растр простейших кривых. Алгоритм Брезенхема для генерации прямой. Алгоритм Брезенхема для сглаживания ребер многоугольников. Алгоритм Брезенхема для генерации окружности.
Объем в часах:
лекционных аудиторных занятий - 6.
Литература /2,5,6,8/
Тема 10. Интерполяция и аппроксимация кривых и поверхностей. Интерполирование с помощью многочленов. Аппроксимация кривых методом Безье. Построение кривых по точкам с помощью сплайнов. В-сплайны. Аппроксимация с помощью сплайнов.
Объем в часах:
лекционных аудиторных занятий - 8
литература /2,4,5,6,8/
2.2 Лабораторные занятия, их наименование и объем в часах.
Лабораторные работы проводятся с целью получения практических навыков реализации прикладных программ, включающих в себя этапы графического конвейера и методы интерполирования и аппроксимации кривых и поверхностей произвольного вида. При этом в течение курса студенту необходимо выполнить две лабораторные работы: одну по реализации программы, включающей в себя этапы графического конвейера (лабораторные работы 1-5), и вторую - по реализации одного из методов интерполирования и аппроксимации кривых и поверхностей произвольного вида (лабораторные работы 6 и 7). На обе работы отводится 64 часа аудиторных занятий.
Лабораторная работа 1. Реализация алгоритмов преобразования трехмерных объектов.
Лабораторная работа 2. Реализация алгоритмов удаления невидимых линий и поверхностей при преобразовании изображения сложных пространственных сцен.
Лабораторная работа 3. Реализация алгоритмов построения тени и закраски полигонов с использованием выбранной модели освещенности.
Лабораторная работа 4. Реализация алгоритмов наложения текстур на изображение сложных пространственных сцен.
Лабораторная работа 5. Реализация алгоритмов сглаживания для улучшения качества изображения сложных пространственных сцен.
Лабораторная работа 6. Реализация алгоритмов Брезенхема для разложения в растр кривых простейшего вида.
Лабораторная работа 7. Реализация методов интерполирования и аппроксимации кривых и поверхностей произвольного вида.
2.3 Курсовая работа, темы курсовых работ и объем в часах.
Курсовая работа выполняется в течение двух семестров с целью получения практических навыков программной реализации графического конвейера и методов интерполирования и аппроксимации кривых и поверхностей произвольного вида. На выполнение курсового проекта отводится 34 часа аудиторных занятий.
Темы курсовых работ
1. Формирование трехмерного вида с различным разрешением с перемещающейся точки взгляда в трехмерном пространстве.
2. Фракталы (визуальная математика).
3. Синтез элементов ландшафта.
4. Построение объектов в проекции (прямая, обратная, стерео, рыбий глаз, цилиндрическая).
5. Построитель теней в 3D.
6. Система построения анимированных 2D/3D графиков математических функций.
7. Конструктор кривых и поверхностей произвольного вида с использованием кривых Безье и B-сплайнов.
8. Конструирование и визуализация: дома, интерьеры, мосты, ажурные конструкции, геометрия обтекания тела средой.
9. Начертательная и аналитическая геометрия (конструктор).
10. Формирование среды (туман, пламя, снег, салют, облака, видеоэффекты, дождь, вода, смывка и так далее).
11. 3D- конструктор-аниматор скелетных объектов.
12. Управление элементами поверхности (человеческое тело, лицо).
13. Построения в неевклидовых геометриях.
14. Эволюция вида растений, животных.
15. Конструктор фактур.
16. Синтезатор двухмерных композиций.
17. Конструктор 3D фигур.
18. Сглаживание поверхностей различными методами.
19. Реализация технологии "Третий глаз".
20. Построение изолиний по заданной матрице различными методами.
21. Построение компактного тела (кластера) в 3D.
22. Слайд-эффекты (шторки, листание, взрыв, морфинг, просвечивание, лупа, кривые зеркала).
23. Методы морфинга растровых картин.
24. Создание компьютерного ролика.
25. Управляемая анимация технического объекта в 3D.
Библиографический список
1. Ньюмен У., Спрулл Р. Основы интерактивной машинной графики: Пер. с англ. М.: Мир, 1976, 573 с.
2. Гилой В. Интерактивная машинная графика: Структуры данных, алгоритмы, языки: Пер. с англ. М.: Мир,1981, 384 с.
3. Энджел И. Практическое введение в машинную графику: Пер. с англ. М.: Радио и связь, 1984б 136 с.
4. Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики: В 2 кн. М.: Мир, 1985, 1053 с.
5. Павлидис Т. Алгоритмы машинной графики и обработки изображений: Пер. с англ. М.:Радио и связь, 1986, 400с.
6. Роджерс Д. Алгоритмические основы машинной графики: Пер. с англ. М.: Мир, 1989, 512 с.
7. Макаренко В.Н., Либрович Л.В. Компьютерная графика Алгоритмы преобразования изображений. / Методические указания к выполнению лабораторных работ // СПГААП,1993, 31с.
8. Макаренко В.Н. Компьютерная графика. Алгоритмы построения кривых и поверхностей. / Методические указания к выполнению лабораторных работ.// СПГААП, 1995, 26 с.
9. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров -М.: Машиностроение, 1991,320 с.
10. Иванов В.П., Батраков А.С. Трехмерная компьютерная графика. М.: Радио и связь, 1995, 213 с.
11. Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика, реалистические изображения. М.: ДИАЛОГ-МИФИ, 1995, 178 с.
12. Лапшин Е. Компьютерная графика IBM PC от точки к виртуальной реальности. М.: Солон, 1995, 195 с.
13. Аммерал. Машинная графика: В 4-х книгах. М.: Мир, 1992.
14. Шикин Е.В., Плис А.И. Кривые и поверхности на экране компьютера. Руководство по сплайнам для пользователей. М.: ДИАЛОГ-МИФИ, 1996, 240 с.
|