Программа по курсу: практикум по трёхмерной машинной графике (базовый) по направлению: 511600

Вид материалаПрограмма

Содержание


Всего часов
Поворот растра на заданный угол с помощью комбинации трех сдвигов.
4.1 Растровая аппроксимация
Список литературы
Подобный материал:

Министерство образования и науки Российской Федерации

Московский физико-технический институт

(государственный университет)


УТВЕРЖДАЮ

Проректор по учебной работе
____________Ю.А. Самарский
«____» ____________2008 г.


ПРОГРАММА


по курсу: ПРАКТИКУМ ПО ТРЁХМЕРНОЙ МАШИННОЙ ГРАФИКЕ (базовый)
по направлению: 511600
факультеты: ФУПМ
кафедра: ИНФОРМАТИКИ
курс: 4 курсовая работа: 8 семестр
семестр: 8 дифф. зачёт: 8 семестр

практические занятия: 64 часа


ВСЕГО ЧАСОВ: 88


Программу составили: ст. преподаватель Ю.В. Блажевич,

ст. преподаватель С.А. Корытник


Программа обсуждена на заседании
кафедры информатики
28 августа 2008 г.


Заведующий кафедрой И.Б. Петров

профессор

  1. Конвейер геометрических преобразований (transformation pipeline)
    1. Общая схема генерации изображения трехмерной сцены;
    2. Базовые преобразования: вращение, масштабирование, перенос, сдвиг;
    3. Преобразования вокруг произвольной точки, произвольной оси, иерархические преобразования, стек матриц;
    4. Стандартная последовательность преобразований (object space => world space => camera space => projection space => post-projection space => screen space);
    5. Отсечение (clipping).
  2. Модели освещения
    1. Глобальное и локальное освещение, общая модель локального освещения (BRDF, BTDF, BSDF);
    2. Разделение модели локального освещения на две части, связанное с монитором и восприятием глаза;
    3. Рассеянное и диффузное освещения (ambient + diffuse), модель Ламберта;
    4. Бликовое освещение: модель Фонга, модель Блинна, модель Торренса-Спэрроу;
    5. Закраска Гуро (Gouraud shading), закраска Фонга (Phong shading);
    6. Растеризация, прозрачность, фактура (bump), перспективно-корректное текстурирование;
    7. Глобальное освещение: алгоритмы теней.
  3. Способы представления объекта и сцены, структуры данных
    1. Точечное и проволочное представления (points & wireframe);
    2. Граничное представление (boundary representation);
    3. Constructive Solid Geometry (CSG);
    4. Топологическая информация: winged-edge data structure;
    5. Пространственные разбиения: униформная декомпозиция (voxels), иерархическая декомпозиция (4- и 8- деревья (quad- and oct- tree), BSP-tree);
    6. Порталы;
    7. Аналитические поверхности высшего порядка (Bezier, Hermit, B-spline, NURBS).
  4. Удаление невидимых поверхностей
    1. Метод плавающего горизонта;
    2. Алгоритм художника;
    3. Алгоритм Варнока;
    4. Z-buffer, нелинейность z-buffer’а, w-buffer, оптимизация сцены для ускорения работы z-buffer’а;
    5. Иерархический z-buffer как hardware-friendly реализация алгоритма Варнока;
    6. Трассировка лучей.
  5. Визуализация научных данных: изолинии, изоклины, изоповерхности, цветовые карты, поля направлений, траектории частиц и др.


Задачи для практикума

  1. 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/).

    1. Поворот растра на заданный угол с помощью комбинации трех сдвигов.

Вход: растровый файл в любом удобном формате. Значение угла поворота (в градусах).

Выход: повернутый растровый файл в любом удобном формате.

Внимание! ширина и высота повернутого файла отличаются от ширины и высоты входного файла. Пустые пиксели надо закрасить цветом фона (например черным).

Алгоритм: Преобразование поворота заменяется на последовательность из трех сдвигов (=shcar не перепутайте с translation=параллельным переносом).


2. Postscript.

В рамках данного курса студенты должны познакомится с языком PostScript.

Для практических экспериментов с PostScript можно воспользоваться программами ghostscript и ghostview (ghostview использует внутри ghostscript, но предоставляет более удобный пользовательский интерфейс).


Для того чтобы изучение было более интересным предлагается выполнить следующие упражнения:

  • Нарисовать 7 сфер равного радиуса, касающихся друг друга.
  • Нарисовать кривую Гильберта 1-го пли 2-го типа в виде рекурсивной процедуры на языке Postscript.
  • Написать программу (на любом языке программирования), которая выводит растровое изображение с
    помощью Postscript (Вход: растровый файл в удобном формате; Выход: файл Postscript).


3. Кривые Безье и В-сплайны

    1. Адаптивное рекурсивное разбиение кривой Безье.

Программа должна позволить пользователю задать набор контрольных точек (с помощью мыши). Программа рисует кривую Безье n-ой степени по n+1 контрольной точке.

Алгоритм: рекурсивный алгоритм разбиения кривой (algorithm de Casteljau). Рекурсия прекращается, когда кусочек кривой становиться достаточно плоским.

Дополнительные задачи:

интерактивное редактирование кривой;

анимация (контрольные точки движутся и отражаются от границ окна, кривая перерисовывается вместе с
ними);

нарисовать B-spline, использую тог же набор контрольных точек;

задать дополнительный прямоугольник отсечения и рисовать части кривой вне и внутри него разным цветом.
  1. OpenGL и GLUT.

Библиотека GLUT (GLUT for Win32), набор обучающих программ для изучения OpenGL.

4.1 Растровая аппроксимация диаграмм Вороного для ломанных.

Имеется программа для растровой аппроксимации диаграмм Вороного для точек с помощью OpenGL. Вы должны модифицировать эту программу так, чтобы она рисовала диаграммы Вороного для ломанных.

СПИСОК ЛИТЕРАТУРЫ

  1. Роджерс Д., Алгоритмические основы машинной графики.
    – М.: Мир, 1989, 512 с.
  2. Препарата Ф., Шаймос М., Вычислительная геометрия: введение.– М.: Мир, 1989, 478 с.
  3. Роджерс Д., Адамс Дж., Математические основы машинной графики. – М.: Мир, 2001. — 604 с. ISBN 5-03-002143-4
  4. Хилл Ф., Open GL. Программирование компьютерной графики. Для профессионалов. — СПб.: Питер, 2002. — 1088 с. ISBN 5-318-00219-6
  5. Эйнджел Э., Интерактивная компьютерная графика. Вводный курс на базе OpenGL, 2 изд.: Пер. с англ. — М.: Издательский дом “Вильямс”, 2001. — 592 с. ISBN 5-8459-0209-6
  6. Юань Фень, Программирование графики для Windows. — СПб.: Питер, 2002. — 1072 с. ISBN 5-318-00297-8
  7. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. М.: МНЦМО, 1999.—960 с. ISBN 5-900916-37-5
  8. Абламейко С.В., Лагуновский Д.М. Обработка изображений: технология, методы, применение. Мн.: Амалфея, 2000, 304 с., ISBN 985-441-143-5
  9. Шикин Е.В., Плис А.И., Кривые и поверхности на экране компьютера. Руководство по сплайнам для пользователей. — М.: ДИАЛОГ-МИФИ, 1996. – 240 с.
  10. Шикин Е.В., Боресков А.В., Компьютерная графика. Полигональные модели. – М.: ДИАЛОГ-МИФИ, 2000. 464 с.
  11. Гарсия-Молина Г., Ульман Д., Уидом Д., Системы баз данных. Полный курс. : Пер. с англ. — М.: Изд. дом "Вильямс", 2003. — 1088 с. ISBN 5-8459-0384-X (рус.)
  12. 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
  13. 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
  14. Okabe A. [et al.] Spatial tessellations: concepts and applications of Voronoi diagrams. 2nd ed. WILEY 2000, 671 p., ISBN 0-471-98635-6
  15. 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
  16. Nielson G., Hagen H., Muller H. Scientific visualization: overviews, methodologies and techniques. IEEE CS 1997, 577 p., ISBN 0-8186-7777-5
  17. On-Line Computer Graphics Notes. Computer Science Department, University of California, Davis (ссылка скрыта)
  18. On-Line Geometric Modeling Notes. Computer Science Department, University of California, Davis. (ссылка скрыта)
  19. PostScript Language Reference Manual / Adobe Systems.
    2nd edition. ISBN 0-201-18127-4
  20. PostScript Tutorial ссылка скрыта
  21. OpenGL programming guide: the official guide to learning OpenGL, version 1.2. Addison-Wesley 1999, 730p. ISBN 0-201-60458-2
  22. ссылка скрыта
  23. ссылка скрыта
  24. ссылка скрыта