Parallax mapping
Parallax mapping (паралакс-маппінг; також відомий як offset mapping, per-pixel displacement mapping або virtual displacement mapping) — програмна техніка рельєфного текстурування у тривимірній комп'ютерній графіці, вдосконалений варіант технік Bump mapping або Normal mapping. Parallax mapping використовується для процедурного створення тривимірного опису текстурованої поверхні з використанням карт зміщення (не плутати з Displacement mapping) замість безпосередньої генерації нової геометрії. Методику «Parallax mapping» умовно можна назвати «2.5D», бо вона дозволяє додавати тривимірну складність в текстури, не створюючи реальні тривимірні графічні структури. Наприклад, текстура кам'яної стіни буде мати візуальну об'ємність, хоча насправді геометрично вона буде пласкою. Parallax mapping був представлений Томоміті Канеко (англ. Tomomichi Kaneko) у 2001 році[1]. Parallax mapping повністю може бути виконаний на графічних процесорах відеокарти як шейдер.
Parallax mapping здійснюється зміщенням текстурних координат так, щоб поверхня здавалася об'ємною[2]. Головна відмінність parallax mapping від displacement mapping в тому, що в ньому всі розрахунки попіксельні, а не повершинні. Ідея методу складається в тому, щоб повертати текстурні координати тій точці, де видовий вектор перетинає поверхню. Це потребує прорахунку трасування променів для карти висот, але якщо вона не має занадто різких коливань («плавна»), то можна обійтись апроксимацією без трасування променів. Якщо ж в parallax mapping використовується трасування променів, то такий варіант називається «Parallax occlusion mapping».
Таким чином, parallax mapping добре підходить для поверхонь з плавною зміною висот, без прорахунку перетинів і великих значень зміщення. Подібний простий алгоритм відрізняється від normal mapping всього-навсього трьома інструкціями піксельного шейдеру: дві математичні інструкції та одна додаткова вибірка із текстури. Після того, як нова текстурна координата буде розрахована, вона використовується для подальшого читання інших текстурних шарів: базової текстури, карти нормалей тощо. Такий метод parallax mapping на сучасних графічних процесорах майже такий ефективний, як і звичайне накладання текстур, а його результатом є більш реалістичне відображення поверхні у порівнянні з більш простим normal mapping.
- ↑ Kaneko, T., et al, 2001. Detailed Shape Representation with Parallax Mapping [Архівовано 29 квітня 2015 у Wayback Machine.]. In Proceedings of ICAT 2001, pp. 205–208.
- ↑ Наталія Татарчук, 2005. Practical Dynamic Parallax Occlusion Mapping [Архівовано 16 квітня 2015 у Wayback Machine.] презентація на SIGGRAPH
- Parallax Occlusion Mapping in GLSL on sunandblackcat.com
- Впровадження Parallax mapping в DirectX [Архівовано 21 червня 2006 у Wayback Machine.]
- Дірки від кулі завдяки Parallax mapping [Архівовано 20 грудня 2007 у Wayback Machine.] — Деталі алгоритму Parallax mapping, який використовувався у грі F.E.A.R. для імітації кульових отворів у стінах.
- Interval Mapping
- Parallax Mapping з Offset Limiting [Архівовано 5 травня 2010 у Wayback Machine.]
- Steep Parallax Mapping [Архівовано 26 квітня 2015 у Wayback Machine.]