Русская Википедия:Parallax mapping
Parallax mapping («параллактическое отображение», также известен как offset mapping, per-pixel displacement mapping или virtual displacement mapping) — программная техника (методика) в трёхмерной компьютерной графике, усовершенствованный вариант техник bump mapping или normal mapping. Parallax mapping используется для процедурного создания трёхмерного описания текстурированной поверхности с использованием карт смещения (не путать с Шаблон:Нп3) вместо непосредственного генерирования новой геометрии. Методику «Parallax mapping» условно можно назвать «2.5D», так как она позволяет добавлять трёхмерную сложность в текстуры, не создавая реальные трёхмерные графические структуры. Например, текстура каменной стены будет иметь визуальную объемность, хотя на самом деле геометрически она будет плоской. Parallax mapping был представлен Томомити Канэко (Шаблон:Lang-en) в 2001 году[1]. Parallax mapping полностью исполняется на графических процессорах видеокарты как пиксельный шейдер.
Описание
Parallax mapping осуществляется смещением текстурных координат так, чтобы поверхность казалась объёмной[2]. Главное отличие parallax mapping от displacement mapping в том, что в нём все расчеты попиксельные, а не повершинные. Идея метода состоит в том, чтобы возвращать текстурные координаты той точки, где видовой вектор пересекает поверхность. Это требует просчета лучей (рейтрейсинг) для карты высот, но если она не имеет слишком сильно изменяющихся значений («гладкая» или «плавная»), то можно обойтись аппроксимацией без использования рейтрейсинга. Если же в parallax mapping используется рейтрейсинг, то такой вариант называется «Parallax occlusion mapping».
Таким образом, parallax mapping хорош для поверхностей с плавно изменяющимися высотами, без просчёта пересечений и больших значений смещения. Подобный простой алгоритм отличается от normal mapping всего тремя инструкциями пиксельного шейдера: две математические инструкции и одна дополнительная выборка из текстуры. После того, как вычислена новая текстурная координата, она используется дальше для чтения других текстурных слоев: базовой текстуры, карты нормалей и т. п. Такой метод parallax mapping на современных графических процессорах почти так же эффективен, как обычное наложение текстур, а его результатом является более реалистичное отображение поверхности по сравнению с простым normal mapping.
См. также
Примечания
Ссылки
- Parallax Occlusion Mapping in GLSL on sunandblackcat.com
- Шаблон:Cite web
- Сравнение из графического движка Irrlicht Engine: «Из Parallax mapping» против «Без Parallax mapping»
- Внедрение Parallax mapping в DirectX, тема форума
- Дырки от пуль благодаря Parallax mapping — Детали алгоритма Parallax mapping, который использовался в игре F.E.A.R. для имитации пулевых отверстий в стенах.
- Interval Mapping
- Parallax Mapping из Offset Limiting
- Steep Parallax Mapping
- ↑ Kaneko, T., et al, 2001. Detailed Shape Representation with Parallax Mapping Шаблон:Wayback. In Proceedings of ICAT 2001, pp. 205—208.
- ↑ Наталия Татарчук, 2005. Practical Dynamic Parallax Occlusion Mapping Шаблон:Wayback презентация на SIGGRAPH