Программа по курсу: практикум по трёхмерной машинной графике (базовый) по направлению: 511600
Вид материала | Программа |
СодержаниеВсего часов Поворот растра на заданный угол с помощью комбинации трех сдвигов. 4.1 Растровая аппроксимация Список литературы |
- Программа по курсу: введение в искусственный интеллект (базовый) по направлению: 511600, 68.26kb.
- Software Project Management ) (базовый) по направлению: 511600 факультеты: фупм кафедра:, 41.85kb.
- Программа по курсу: Основы выпуклого анализа и линейного программирования по направлению:, 31.8kb.
- Программа по курсу: современные технологии параллельного программирования (по выбору), 69.72kb.
- Ю. А. Самарский 17 июня 2006 г. Программ а по курсу вычислительная математика по направлению, 137.08kb.
- Практикум по курсу \ Институциональная экономика»» ном «Практикум по курсу «Институциональная, 29.32kb.
- Рабочая программа наименование дисциплины Системы автоматизированного проектирования, 192.15kb.
- Практикум по курсу "Менеджмент", 39.1kb.
- Практикум по курсу "Информатика", 153.44kb.
- 3D графика это процесс создания объемной модели при помощи специальных компьютерных, 110.51kb.
Министерство образования и науки Российской Федерации
Московский физико-технический институт
(государственный университет)
УТВЕРЖДАЮ
Проректор по учебной работе
____________Ю.А. Самарский
«____» ____________2008 г.
ПРОГРАММА
по курсу: ПРАКТИКУМ ПО ТРЁХМЕРНОЙ МАШИННОЙ ГРАФИКЕ (базовый)
по направлению: 511600
факультеты: ФУПМ
кафедра: ИНФОРМАТИКИ
курс: 4 курсовая работа: 8 семестр
семестр: 8 дифф. зачёт: 8 семестр
практические занятия: 64 часа
ВСЕГО ЧАСОВ: 88
Программу составили: ст. преподаватель Ю.В. Блажевич,
ст. преподаватель С.А. Корытник
Программа обсуждена на заседании
кафедры информатики
28 августа 2008 г.
Заведующий кафедрой И.Б. Петров
профессор
- Конвейер геометрических преобразований (transformation pipeline)
- Общая схема генерации изображения трехмерной сцены;
- Базовые преобразования: вращение, масштабирование, перенос, сдвиг;
- Преобразования вокруг произвольной точки, произвольной оси, иерархические преобразования, стек матриц;
- Стандартная последовательность преобразований (object space => world space => camera space => projection space => post-projection space => screen space);
- Отсечение (clipping).
- Общая схема генерации изображения трехмерной сцены;
- Модели освещения
- Глобальное и локальное освещение, общая модель локального освещения (BRDF, BTDF, BSDF);
- Разделение модели локального освещения на две части, связанное с монитором и восприятием глаза;
- Рассеянное и диффузное освещения (ambient + diffuse), модель Ламберта;
- Бликовое освещение: модель Фонга, модель Блинна, модель Торренса-Спэрроу;
- Закраска Гуро (Gouraud shading), закраска Фонга (Phong shading);
- Растеризация, прозрачность, фактура (bump), перспективно-корректное текстурирование;
- Глобальное освещение: алгоритмы теней.
- Глобальное и локальное освещение, общая модель локального освещения (BRDF, BTDF, BSDF);
- Способы представления объекта и сцены, структуры данных
- Точечное и проволочное представления (points & wireframe);
- Граничное представление (boundary representation);
- Constructive Solid Geometry (CSG);
- Топологическая информация: winged-edge data structure;
- Пространственные разбиения: униформная декомпозиция (voxels), иерархическая декомпозиция (4- и 8- деревья (quad- and oct- tree), BSP-tree);
- Порталы;
- Аналитические поверхности высшего порядка (Bezier, Hermit, B-spline, NURBS).
- Точечное и проволочное представления (points & wireframe);
- Удаление невидимых поверхностей
- Метод плавающего горизонта;
- Алгоритм художника;
- Алгоритм Варнока;
- Z-buffer, нелинейность z-buffer’а, w-buffer, оптимизация сцены для ускорения работы z-buffer’а;
- Иерархический z-buffer как hardware-friendly реализация алгоритма Варнока;
- Трассировка лучей.
- Метод плавающего горизонта;
- Визуализация научных данных: изолинии, изоклины, изоповерхности, цветовые карты, поля направлений, траектории частиц и др.
Задачи для практикума
- 1 Аппроксимация полутонов.
Вход: растровый файл в любом удобном формате.
Наиболее простым для чтения и записи, а также для наших целей являются файлы в формате pgm (portable graymap).
Выход: растровый файл в любом удобном формате но с меньшим цветовым разрешением.
Для данного эксперимента можно ограничится двухцветным выходным файлом. Можно использовать тот же (входной) формат, но пиксели должно быть только двух цветов (черного и белого).
Алгоритмы: Интересно сравнить результаты работы 4 алгоритмов:
- Округление до ближайшего (Round to nearest or fixed threshold dithering).
- Случайное возбуждение (Random threshold dithering).
- Упорядоченное возбуждение (ordered dithering)
- Диффузия ошибки (error diffusion by Floyd Steinberg algorithm)
Другие интересные алгоритмы:
- диффузия ошибки только в следующий по строке пиксель.
- другие разновидности диффузии ошибки (с другими весами, с чередованием направлений, вдоль кривой.
- dot diffusion.
Необходимое программное обеспечение.
Бесплатная программа для просмотра и манипуляций растровыми изображениями (w.com/).
- Поворот растра на заданный угол с помощью комбинации трех сдвигов.
Вход: растровый файл в любом удобном формате. Значение угла поворота (в градусах).
Выход: повернутый растровый файл в любом удобном формате.
Внимание! ширина и высота повернутого файла отличаются от ширины и высоты входного файла. Пустые пиксели надо закрасить цветом фона (например черным).
Алгоритм: Преобразование поворота заменяется на последовательность из трех сдвигов (=shcar не перепутайте с translation=параллельным переносом).
2. Postscript.
В рамках данного курса студенты должны познакомится с языком PostScript.
Для практических экспериментов с PostScript можно воспользоваться программами ghostscript и ghostview (ghostview использует внутри ghostscript, но предоставляет более удобный пользовательский интерфейс).
Для того чтобы изучение было более интересным предлагается выполнить следующие упражнения:
- Нарисовать 7 сфер равного радиуса, касающихся друг друга.
- Нарисовать кривую Гильберта 1-го пли 2-го типа в виде рекурсивной процедуры на языке Postscript.
- Написать программу (на любом языке программирования), которая выводит растровое изображение с
помощью Postscript (Вход: растровый файл в удобном формате; Выход: файл Postscript).
3. Кривые Безье и В-сплайны
- Адаптивное рекурсивное разбиение кривой Безье.
Программа должна позволить пользователю задать набор контрольных точек (с помощью мыши). Программа рисует кривую Безье n-ой степени по n+1 контрольной точке.
Алгоритм: рекурсивный алгоритм разбиения кривой (algorithm de Casteljau). Рекурсия прекращается, когда кусочек кривой становиться достаточно плоским.
Дополнительные задачи:
интерактивное редактирование кривой;
анимация (контрольные точки движутся и отражаются от границ окна, кривая перерисовывается вместе с
ними);
нарисовать B-spline, использую тог же набор контрольных точек;
задать дополнительный прямоугольник отсечения и рисовать части кривой вне и внутри него разным цветом.
- OpenGL и GLUT.
Библиотека GLUT (GLUT for Win32), набор обучающих программ для изучения OpenGL.
4.1 Растровая аппроксимация диаграмм Вороного для ломанных.
Имеется программа для растровой аппроксимации диаграмм Вороного для точек с помощью OpenGL. Вы должны модифицировать эту программу так, чтобы она рисовала диаграммы Вороного для ломанных.
СПИСОК ЛИТЕРАТУРЫ
- Роджерс Д., Алгоритмические основы машинной графики.
– М.: Мир, 1989, 512 с.
- Препарата Ф., Шаймос М., Вычислительная геометрия: введение.– М.: Мир, 1989, 478 с.
- Роджерс Д., Адамс Дж., Математические основы машинной графики. – М.: Мир, 2001. — 604 с. ISBN 5-03-002143-4
- Хилл Ф., Open GL. Программирование компьютерной графики. Для профессионалов. — СПб.: Питер, 2002. — 1088 с. ISBN 5-318-00219-6
- Эйнджел Э., Интерактивная компьютерная графика. Вводный курс на базе OpenGL, 2 изд.: Пер. с англ. — М.: Издательский дом “Вильямс”, 2001. — 592 с. ISBN 5-8459-0209-6
- Юань Фень, Программирование графики для Windows. — СПб.: Питер, 2002. — 1072 с. ISBN 5-318-00297-8
- Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М.: МНЦМО, 1999.—960 с. ISBN 5-900916-37-5
- Абламейко С.В., Лагуновский Д.М. Обработка изображений: технология, методы, применение. Мн.: Амалфея, 2000, 304 с., ISBN 985-441-143-5
- Шикин Е.В., Плис А.И., Кривые и поверхности на экране компьютера. Руководство по сплайнам для пользователей. — М.: ДИАЛОГ-МИФИ, 1996. – 240 с.
- Шикин Е.В., Боресков А.В., Компьютерная графика. Полигональные модели. – М.: ДИАЛОГ-МИФИ, 2000. 464 с.
- Гарсия-Молина Г., Ульман Д., Уидом Д., Системы баз данных. Полный курс. : Пер. с англ. — М.: Изд. дом "Вильямс", 2003. — 1088 с. ISBN 5-8459-0384-X (рус.)
- Foley J. D., A. van Dam, Feiner S. K., Hughes J. H., Computer graphics: principles and practice. 2nd ed. in C. Addison-Wesley, 1996, 1175 p., ISBN 0-201-84840-6
- Mark de Berg, Marc van Kreveld, Marc Overmars, Otfried Schwarzkopf
Computational Geometry: algorithms and applications. 2nd edition.
Springer-Verlag, 2000, 367 p., ISBN 3-540-65620-0
- Okabe A. [et al.] Spatial tessellations: concepts and applications of Voronoi diagrams. 2nd ed. WILEY 2000, 671 p., ISBN 0-471-98635-6
- Farin G. Curves and surfaces for computer aided geometric design: a practical guide. 4th ed. ACADEMIC PRESS 1997, 429 p., ISBN 0-12-249054-1
- Nielson G., Hagen H., Muller H. Scientific visualization: overviews, methodologies and techniques. IEEE CS 1997, 577 p., ISBN 0-8186-7777-5
- On-Line Computer Graphics Notes. Computer Science Department, University of California, Davis (ссылка скрыта)
- On-Line Geometric Modeling Notes. Computer Science Department, University of California, Davis. (ссылка скрыта)
- PostScript Language Reference Manual / Adobe Systems.
2nd edition. ISBN 0-201-18127-4
- PostScript Tutorial ссылка скрыта
- OpenGL programming guide: the official guide to learning OpenGL, version 1.2. Addison-Wesley 1999, 730p. ISBN 0-201-60458-2
- ссылка скрыта
- ссылка скрыта
- ссылка скрыта