Рельефное текстурирование

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 77.122.4.33 (обсуждение) в 08:15, 26 июля 2013 (Displacement mapping). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Сфера без рельефной текстуры; Рельефная текстура, наложенная на изображение ниже; Сфера геометрически идентичная первой, но с наложенной рельефной текстурой. Благодаря этому меняется реакция при затенении, в результате чего эффект бугристой поверхности делает сферу похожей на апельсин.

Рельефное текстурирование — метод в компьютерной графике для придания более реалистичного и насыщенного вида поверхности объектов.

Bump mapping

Техника Bump mapping заключается в отклонении нормалей каждого пикселя от нормали, рассчитанной для всего полигона. Существует два простых способа - задание смещений пикселей в карте высот (алгоритм Блинна) или задание отклонения нормалей в карте нормалей. Затем к полигону применяется алгоритм освещения (например: затенение по Фонгу). В результате получается изображение с микротенями, которое намного реалистичней расчитанного с плоской моделью текстур. При этом гораздо эффективней, чем использование более сложных геометрических моделей (в том числе Displacement mapping).

Кроме описанной выше техники, существует ряд альтернатив, также позволяющих придавать рельефность поверхностям. Bump mapping более корректно переводится как «эффект бугристой поверхности», в то время как техника с названием Relief mapping, используемым в англоязычной литературе, отличается от вышеизложенной.

Normal mapping

Результат работы технологии

Normal mapping - один из самых простых спобов реализации Bump mapping. Для хранения информации о рельефе используются текстуры, в которых кодируются данные об отклонении нормалей поверхности. Для создания таких текстур обычно используется высокополигональная модель, на основе которой генерируется текстура нормалей, и низкополигональная, на которую она накладывается.

Parallax mapping

Данная технология также использует карты нормалей, но, в отличие от normal mapping, она реализует не только освещение с учётом рельефа, но и сдвигает координаты диффузной текстуры. Этим достигается наиболее полный эффект рельефа, особенно при взгляде на поверхность под углом.

Parallax occlusion mapping

Parallax occlusion mapping является усовершенствованной и в то же время одной из наиболее вычислительно сложных разновидностей Parallax mapping. Фактически представляет собой форму локального рейтрейсинга (трассировки лучей) в пиксельном шейдере. Трассировка лучей используется для определения высот и учёта видимости текселей. Иными словами, данный метод позволяет создавать ещё большую глубину рельефа при небольших затратах полигонов и применении сложной геометрии. Недостаток метода — невысокая детализация силуэтов и граней.

Реализовать Parallax occlusion mapping возможно в рамках функционала API DirectX 9 Shader Model 3, однако для получения оптимальной производительности видеокарта должна обеспечивать надлежащий уровень скорости исполнения ветвлений в пиксельном шейдере. На данный момент Parallax occlusion mapping используется в некоторых компьютерных играх, например, Crysis и ArmA 2. Также эта технология используется в популярном бенчмарке 3DMark Vantage.

Displacement mapping

Эта техника, в отличие от описанных выше, изменяет геометрию поверхности по заданному полю высот, обычно передающегося в вершинный шейдер через текстуру. Преимущество в том, что освещение считается обычным способом (пиксельный шейдер может быть практически любым), но требует высокую детализацию модели.

См. также