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 повністю може бути виконаний на графічних процесорах відеокарти як шейдер.

Скріншот з демонстраційного бенчмарку графічного рушія Irrlicht Engine, з використанням технології «Parallax mapping» для текстурування стін, підлоги і стелі кімнати. У динаміці тіні між цеглинами змінюються динамічно в залежності від знаходження джерела світла.

Опис

Parallax mapping здійснюється зміщенням текстурних координат так, щоб поверхня здавалася об'ємною[2]. Головна відмінність parallax mapping від displacement mapping в тому, що в ньому всі розрахунки попіксельні, а не повершинні. Ідея методу складається в тому, щоб повертати текстурні координати тій точці, де видовий вектор перетинає поверхню. Це потребує прорахунку трасування променів для карти висот, але якщо вона не має занадто різких коливань («плавна»), то можна обійтись апроксимацією без трасування променів. Якщо ж в parallax mapping використовується трасування променів, то такий варіант називається «Parallax occlusion mapping».

Таким чином, parallax mapping добре підходить для поверхонь з плавною зміною висот, без прорахунку перетинів і великих значень зміщення. Подібний простий алгоритм відрізняється від normal mapping всього-навсього трьома інструкціями піксельного шейдеру: дві математичні інструкції та одна додаткова вибірка із текстури. Після того, як нова текстурна координата буде розрахована, вона використовується для подальшого читання інших текстурних шарів: базової текстури, карти нормалей тощо. Такий метод parallax mapping на сучасних графічних процесорах майже такий ефективний, як і звичайне накладання текстур, а його результатом є більш реалістичне відображення поверхні у порівнянні з більш простим normal mapping.

Примітки

  1. Kaneko, T., et al, 2001. Detailed Shape Representation with Parallax Mapping. In Proceedings of ICAT 2001, pp. 205–208.
  2. Наталія Татарчук, 2005. Practical Dynamic Parallax Occlusion Mapping презентація на SIGGRAPH

Див. також

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.