Transcript
Page 1: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

www.hse.ru

ТРЁХМЕРНАЯ ГРАФИКА

Соболевский Алексей

ИНЖЕНЕРНАЯ И КОМПЬЮТЕРНАЯ ГРАФИКА

2 КУРС

Page 2: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Темы лекции

• Что такое трёхмерная графика?• История трёхмерной графики• Основные понятия 3D-графики• Конвейер рендеринга• Основные алгоритмы 3D-объектами• Дополнительные фишки

Page 3: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

3D GRAPHPHPHPHPHICZZZZ

3D-графикаРаздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), предназначенных для изображения объёмных объектов.

Page 4: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

3D GRAPHPHPHPHPHICZZZZ

Page 5: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

3D GRAPHPHPHPHPHICZZZZ

Page 6: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Немного истории

Иван Сазерленд•Создатель Sketchpad (1962 год)•Основатель первой кафедры Компьютерной графики•Ведущий специалист в области КГ

Эд Катмолл•Создатель первых алгоритмов битовой глубины и текстурирования•Технический директор Pixar

Page 7: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Немного истории

Джим БлиннСоздатель Bump Mapping и Environment Mapping

Би Тюн ФонгPhong Shading

Анри ГюраGouraud Shading

Page 8: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Немного истории

Page 9: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Немного истории

• 1976 годПервый фильм, в котором использовалась 3D-графика

• Первая программа 3D-моделирования MAGI (процедрурная)

• Алгоритм трассировки лучей• Появление полигонального метода

моделирования• Power Animator (SGI-станции, Irix OS)

Page 10: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Основные понятия 3D-графики

• Полигон• Вертекс• Текстура• Шейдер• Буфер глубины и буфер кадра• Рендеринг

Page 11: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Полигон

• Произвольный плоский многоугольник являющийся частью грани или поверхности

• В основном, треугольник

Page 12: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Вершина

• Вершина полигона• Массивы вертексов (вместо массивов

полигонов)• Преобразование объектов

Page 13: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Вершина

• Позиция• Нормаль• Цвет• Координаты текстуры

Page 14: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Полигональная сетка

Page 15: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Вершина

Page 16: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстура

• Растровое изображение• Отвечает за цвет и псевдообъём• Состоит из текселей

Page 17: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстурирование

• Normal Mapping• Parallax Mapping• Bump Mapping• Environment Mapping• Displacement Mapping• Mipmapping• …

Page 18: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстурирование

Page 19: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстурирование

Page 20: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстурирование

Page 21: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстурирование

• Parallax mapping – работает как фрагментный (пиксельный) шейдер

• Displacement mapping – работает как вершинный (вертексный) шейдер

Page 22: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Шейдеры

Программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки. (с) Wiki

Page 23: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Шейдеры

• Вершинные шейдеры• Изменение параметров вершин

• Геометрические шейдеры

• Пиксельные шейдеры• Изменение параметров пикселей при выводе• Возможность производить попиксельное освещение• Создание эффектов с частицами

Page 24: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Шейдеры

Page 25: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Буфер глубины и буфер кадра

Буфер глубины - способ учёта удалённости элемента изображения

По сути, это массив, записывающий удалённость объектов сцены от камеры

Page 26: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Буфер глубины и буфер кадра

Page 27: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Буфер глубины и буфер кадра

Page 28: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Буфер глубины и буфер кадра

Page 29: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Буфер глубины и буфер кадра

Page 30: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Рендеринг

РЕНДЕРИНГ

Page 31: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Рендеринг

Получение изображения из модели (не обязательно 3D)

Page 32: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга

Это стандартный алгоритм

Вход конвейера – данные о 3D сцене (свет, объекты, текстуры, шейдеры, типы затенения и освещения и т.п.)

Выход конвейера – 2D картинка на мониторе

Page 33: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга

• Триангуляция (Triangle Setup)

• Трансформация объектов

• Обработка вершин

• Трансформация вида

• Проекция сцены

• Отсечение невидимых частей

• Растеризация

• Обработка пикселей

• Вывод

Page 34: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга. Триангуляция

Разбиение моделей на треугольники

Любую область можно гарантированно разбить на треугольники (ZIP-теорема Конвея)

Проще разбивать на треугольники, нежели на другие полигоны (метод Делоне)

Page 35: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга. Триангуляция

Метод Делоне Диаграмма Вороного

Page 36: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга. Триангуляция

Page 37: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга. Триангуляция

Page 38: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга. Трансформация объектов

Применение матриц преобразования к объектам (поворот, растяжение, перемещение)

Page 39: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга.

Обработка вершин•Задаются цвета и другие параметры вертексов•Обрабатываются вертексные шейдеры

Трансформация вида•Переход от системы координат сцены к системе координат камеры

Проекция сцены•Проекция 3D-сцены на 2D-пиксельную сетку монитора

Page 40: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Конвейер рендеринга.

Clipping (отсечение)Невидимые части объектов отсекаются

РастеризацияОпределение значений пикселей и занесение в Z-buffer значения глубины

Page 41: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Текстурирование

Обработка света

Page 42: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Обработка света

• Lightmapping• Shadow Volumes• Ray Tracing и Reverse ray tracing• Occulsion mapping• Photon mapping

Page 43: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Lightmap

• Меняется цвет и освещённость текстуры

Page 44: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Shadow Volumes

• В самом простом случае: всё, что находится за освещённым объектом – чёрное. Очень жёсткие тени. Сложности с воспроизведением рассеивания света

Page 45: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Shadow Volumes

Справа показано, как распространяются проекции теневых объёмов от источника света

Page 46: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Ray Tracing и Reverse Ray Tracing

• Если совсем просто: каждый пиксель экрана – это луч, направленный в трёхмерную сцену. При пересечении с объектом высчитывается цвет этого пикселя с учётом коэффициентов отражения, преломления и цвета самой текстуры.

Page 47: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Ray Tracing и Reverse Ray Tracing

Page 48: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Дополнительные фишки

Дополнительно

Page 49: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Дополнительные методы и алгоритмы

• Методы построения 3D-объектов– NURBS– Voxels

• Anti-Aliasing• Motion Blur• HDR

Page 50: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

NURBS

• NURBS – Non-uniform rational B-splines. Неоднородные рациональные B-сплайны. Метод построения криволинейных поверхностей. Основан на B-сплайнах и кривых Безье.

Page 51: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

NURBS

Page 52: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Voxels

• Voxel – Volumetric pixel, по аналогии с обычным пикселем – из вокселей могут строится трёхмерные объекты. Может быть кубом, сферой или другим примитивом. Не нуждается в текстурировании.

Page 53: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Voxels

Page 54: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Anti-aliasing

• Anti-aliasing – технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских, или объёмных изображений.

Page 55: Лекция по Трёхмерной графике

Высшая школа экономики, Москва, 2013

Anti-aliasing