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

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

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

Bump mapping

Техника заключается в том, что отклонение каждого пикселя от нормали к поверхности просчитываемого объекта смотрится в карте высот (поле высот) и применяется перед обсчётом освещения (см. для примера: затенение по Фонгу).

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

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

См. также