Карта зміщення
Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. (квітень 2017) |
Карта зміщення (displacement mapping) — техніка рельєфного текстурування у тривимірній комп'ютерній графіці, що відрізняється від альтернативних бампмаппінг (англ. bump mapping), нормалмаппінг[en] (англ. normal mapping) та parallax mapping тим, що використовує процедурні, текстурні карти або карти висот для створення ефекту, при якому виконується зміщення (англ. displacement) реальних геометричних позицій точок (зазвичай, разом з нормалями) від текстурованої поверхні відповідно до значення текстурної функції, що обчислюється для кожної точки поверхні. Ще додає поверхні глибину та деталі, що дозволяє правильно візуалізувати самоперекриття, самозатінення та отримати правильний силует об'єкта. З іншого боку, ця техніка є найбільш ресурсовитратною зі свого класу, оскільки потребує використання великої кількості додаткових геометричних даних та обчислень.
Протягом багатьох років, карта зміщення була особливістю висококласних рендерних систем, як-от PhotoRealistic RenderMan, коли на той момент такі API-інтерфейси, як OpenGL та DirectX, тільки починали використовувати цю особливість.
Однією із причин цього є те, що оригінальне виконання карт зміщення вимагає адаптивної теселяції поверхні для того, щоб отримати достатню кількість мікрополігонів[en], розмір яких відповідає розміру пікселя на екрані.
Карта зміщення містить в собі термін відображення (mapping), яке відноситься до текстури (texture map), яка використовується для модуляції сили зміщення. Напрямок зміщення, як правило, це локальна нормаль поверхні. Сьогодні багато рендерів (візуалізований об'єкт) дозволяють програмовані шейдери, які можуть створювати високоякісні (багатовимірні) процедурні текстури та моделі в довільно високих частотах. Використання терміну відображення (mapping) стає спірним, оскільки більше не включає в себе текстури (texture map). Таким чином, на сьогодні більш широкий термін зміщення (displacement) часто використовується для позначення концепції, яка також включає в себе зміщення на основі текстури. Рендери використовують алгоритми REYES[en], або схожі підходи на основі мікрополігонів, які дозволили карти зміщення при будь-яких високих частотах, тому вони стали доступні майже 20 років тому.
Перший комерційно доступний рендер для реалізації мікрополігонів підходом карт зміщення, завдяки REYES був Pixar's PhotoRealistic RenderMan. Рендерні мікрополігони, зазвичай, при зернистості мають форму геометричної мозаїки, що підходить для зображення, яке візуалізується. Тобто, додаток моделювання забезпечує примітиви високого рівня для рендора. Приклади включають в себе справжні NURBS- або поверхні розбиття.
Інші рендери, які вимагають застосування моделювання для доставки об'єктів, попередньо-мозаїчних, в довільні багатокутники, або навіть трикутники, визначили термін карта зміщення, як переміщення вершин цих багатокутників. Часто зміщення напрямку також обмежена нормаллю до поверхні в вершині. Хоча концептуально схожі, ці багатокутники, як правило, набагато більше, ніж мікрополігони. Якість, яка досягається при такому підході, обмежується щільністю геометричної мозаїки задовго до того, як рендерер отримує доступ до нього.
Ця різниця між картами зміщення в рендерних мікрополігонів та картами зміщення в не-мозаїчних рендерних (макро) полігонів, часто може призвести до плутанини в розмовах між людьми, у яких вплив на кожну технологію, або реалізацію, обмежений. Тим більше, що, як і в останні роки, багато не-мікрополігоні рендери додали можливість робити карти зміщення якості, аналогічної якій мікрополігоний рендер здатний доставити природно. Для того, щоб розрізняти необроблену попередню теселяцію на основі зміщення, що рендери робили раніше, термін зміщення субпікселя (sub-pixel displacement ) було введено для опису цієї функції.
Зміщення субпікселя, зазвичай, відноситься до більш тонкого повторення теселяції геометрії, яка вже була укладена мозаїкою в полігони. Ця повторна теселяція призводить до мікрополігонів, або часто мікротрикутників. Потім їх вершини переміщаються уздовж їх нормалей для досягнення карт зміщення.
Справжні мікрополігоні рендери завжди могли зробити те, що зміщення субпікселя тільки останнім часом, але з більш високою якістю і в напрямках довільних переміщень.
Останні події, здається, вказують, що деякі з рендерів, які використовують зміщення субпікселя, теж рухаються в напрямку підтримки вищого рівня геометрії. У міру того, як виробники цих рендерів, ймовірно, продовжують використовувати термін зміщення субпікселя, це, ймовірно, призведе до ще більшого заплутування того, що дійсно означає карта зміщення, в тривимірної комп'ютерної графіки.
У Microsoft, патентований високого рівня Shader Language, карти зміщення можна інтерпретувати, як свого роду «відображення вершин-текстури», де значення текстури не змінюють кольору пікселів (як це набагато частіше), але замість того, змінюють становище вершин. На відміну від бамп, нормального і паралакс відображення, всі з яких можна сказати «підроблена» поведінка карт зміщення, таким чином, по-справжньому груба поверхня може бути отримана з текстури. Це повинно використовуватися в поєднанні з адаптивними методами теселяції (що збільшує кількість полігонів, що надаються відповідно до поточних параметрів перегляду) для отримання високого ступеня деталізації сітки.