Лекция по Трёхмерной графике
TRANSCRIPT
Высшая школа экономики, Москва, 2013
www.hse.ru
ТРЁХМЕРНАЯ ГРАФИКА
Соболевский Алексей
ИНЖЕНЕРНАЯ И КОМПЬЮТЕРНАЯ ГРАФИКА
2 КУРС
Высшая школа экономики, Москва, 2013
Темы лекции
• Что такое трёхмерная графика?• История трёхмерной графики• Основные понятия 3D-графики• Конвейер рендеринга• Основные алгоритмы 3D-объектами• Дополнительные фишки
Высшая школа экономики, Москва, 2013
3D GRAPHPHPHPHPHICZZZZ
3D-графикаРаздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), предназначенных для изображения объёмных объектов.
Высшая школа экономики, Москва, 2013
3D GRAPHPHPHPHPHICZZZZ
Высшая школа экономики, Москва, 2013
3D GRAPHPHPHPHPHICZZZZ
Высшая школа экономики, Москва, 2013
Немного истории
Иван Сазерленд•Создатель Sketchpad (1962 год)•Основатель первой кафедры Компьютерной графики•Ведущий специалист в области КГ
Эд Катмолл•Создатель первых алгоритмов битовой глубины и текстурирования•Технический директор Pixar
Высшая школа экономики, Москва, 2013
Немного истории
Джим БлиннСоздатель Bump Mapping и Environment Mapping
Би Тюн ФонгPhong Shading
Анри ГюраGouraud Shading
Высшая школа экономики, Москва, 2013
Немного истории
Высшая школа экономики, Москва, 2013
Немного истории
• 1976 годПервый фильм, в котором использовалась 3D-графика
• Первая программа 3D-моделирования MAGI (процедрурная)
• Алгоритм трассировки лучей• Появление полигонального метода
моделирования• Power Animator (SGI-станции, Irix OS)
Высшая школа экономики, Москва, 2013
Основные понятия 3D-графики
• Полигон• Вертекс• Текстура• Шейдер• Буфер глубины и буфер кадра• Рендеринг
Высшая школа экономики, Москва, 2013
Полигон
• Произвольный плоский многоугольник являющийся частью грани или поверхности
• В основном, треугольник
Высшая школа экономики, Москва, 2013
Вершина
• Вершина полигона• Массивы вертексов (вместо массивов
полигонов)• Преобразование объектов
Высшая школа экономики, Москва, 2013
Вершина
• Позиция• Нормаль• Цвет• Координаты текстуры
Высшая школа экономики, Москва, 2013
Полигональная сетка
Высшая школа экономики, Москва, 2013
Вершина
Высшая школа экономики, Москва, 2013
Текстура
• Растровое изображение• Отвечает за цвет и псевдообъём• Состоит из текселей
Высшая школа экономики, Москва, 2013
Текстурирование
• Normal Mapping• Parallax Mapping• Bump Mapping• Environment Mapping• Displacement Mapping• Mipmapping• …
Высшая школа экономики, Москва, 2013
Текстурирование
Высшая школа экономики, Москва, 2013
Текстурирование
Высшая школа экономики, Москва, 2013
Текстурирование
Высшая школа экономики, Москва, 2013
Текстурирование
• Parallax mapping – работает как фрагментный (пиксельный) шейдер
• Displacement mapping – работает как вершинный (вертексный) шейдер
Высшая школа экономики, Москва, 2013
Шейдеры
Программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки. (с) Wiki
Высшая школа экономики, Москва, 2013
Шейдеры
• Вершинные шейдеры• Изменение параметров вершин
• Геометрические шейдеры
• Пиксельные шейдеры• Изменение параметров пикселей при выводе• Возможность производить попиксельное освещение• Создание эффектов с частицами
Высшая школа экономики, Москва, 2013
Шейдеры
Высшая школа экономики, Москва, 2013
Буфер глубины и буфер кадра
Буфер глубины - способ учёта удалённости элемента изображения
По сути, это массив, записывающий удалённость объектов сцены от камеры
Высшая школа экономики, Москва, 2013
Буфер глубины и буфер кадра
Высшая школа экономики, Москва, 2013
Буфер глубины и буфер кадра
Высшая школа экономики, Москва, 2013
Буфер глубины и буфер кадра
Высшая школа экономики, Москва, 2013
Буфер глубины и буфер кадра
Высшая школа экономики, Москва, 2013
Рендеринг
РЕНДЕРИНГ
Высшая школа экономики, Москва, 2013
Рендеринг
Получение изображения из модели (не обязательно 3D)
Высшая школа экономики, Москва, 2013
Конвейер рендеринга
Это стандартный алгоритм
Вход конвейера – данные о 3D сцене (свет, объекты, текстуры, шейдеры, типы затенения и освещения и т.п.)
Выход конвейера – 2D картинка на мониторе
Высшая школа экономики, Москва, 2013
Конвейер рендеринга
• Триангуляция (Triangle Setup)
• Трансформация объектов
• Обработка вершин
• Трансформация вида
• Проекция сцены
• Отсечение невидимых частей
• Растеризация
• Обработка пикселей
• Вывод
Высшая школа экономики, Москва, 2013
Конвейер рендеринга. Триангуляция
Разбиение моделей на треугольники
Любую область можно гарантированно разбить на треугольники (ZIP-теорема Конвея)
Проще разбивать на треугольники, нежели на другие полигоны (метод Делоне)
Высшая школа экономики, Москва, 2013
Конвейер рендеринга. Триангуляция
Метод Делоне Диаграмма Вороного
Высшая школа экономики, Москва, 2013
Конвейер рендеринга. Триангуляция
Высшая школа экономики, Москва, 2013
Конвейер рендеринга. Триангуляция
Высшая школа экономики, Москва, 2013
Конвейер рендеринга. Трансформация объектов
Применение матриц преобразования к объектам (поворот, растяжение, перемещение)
Высшая школа экономики, Москва, 2013
Конвейер рендеринга.
Обработка вершин•Задаются цвета и другие параметры вертексов•Обрабатываются вертексные шейдеры
Трансформация вида•Переход от системы координат сцены к системе координат камеры
Проекция сцены•Проекция 3D-сцены на 2D-пиксельную сетку монитора
Высшая школа экономики, Москва, 2013
Конвейер рендеринга.
Clipping (отсечение)Невидимые части объектов отсекаются
РастеризацияОпределение значений пикселей и занесение в Z-buffer значения глубины
Высшая школа экономики, Москва, 2013
Текстурирование
Обработка света
Высшая школа экономики, Москва, 2013
Обработка света
• Lightmapping• Shadow Volumes• Ray Tracing и Reverse ray tracing• Occulsion mapping• Photon mapping
Высшая школа экономики, Москва, 2013
Lightmap
• Меняется цвет и освещённость текстуры
Высшая школа экономики, Москва, 2013
Shadow Volumes
• В самом простом случае: всё, что находится за освещённым объектом – чёрное. Очень жёсткие тени. Сложности с воспроизведением рассеивания света
Высшая школа экономики, Москва, 2013
Shadow Volumes
Справа показано, как распространяются проекции теневых объёмов от источника света
Высшая школа экономики, Москва, 2013
Ray Tracing и Reverse Ray Tracing
• Если совсем просто: каждый пиксель экрана – это луч, направленный в трёхмерную сцену. При пересечении с объектом высчитывается цвет этого пикселя с учётом коэффициентов отражения, преломления и цвета самой текстуры.
Высшая школа экономики, Москва, 2013
Ray Tracing и Reverse Ray Tracing
Высшая школа экономики, Москва, 2013
Дополнительные фишки
Дополнительно
Высшая школа экономики, Москва, 2013
Дополнительные методы и алгоритмы
• Методы построения 3D-объектов– NURBS– Voxels
• Anti-Aliasing• Motion Blur• HDR
Высшая школа экономики, Москва, 2013
NURBS
• NURBS – Non-uniform rational B-splines. Неоднородные рациональные B-сплайны. Метод построения криволинейных поверхностей. Основан на B-сплайнах и кривых Безье.
Высшая школа экономики, Москва, 2013
NURBS
Высшая школа экономики, Москва, 2013
Voxels
• Voxel – Volumetric pixel, по аналогии с обычным пикселем – из вокселей могут строится трёхмерные объекты. Может быть кубом, сферой или другим примитивом. Не нуждается в текстурировании.
Высшая школа экономики, Москва, 2013
Voxels
Высшая школа экономики, Москва, 2013
Anti-aliasing
• Anti-aliasing – технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских, или объёмных изображений.
Высшая школа экономики, Москва, 2013
Anti-aliasing