Рельєфне текстурування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Сфера без рельєфної текстури; Рельєфна текстура, накладена на зображення нижче; Сфера геометрично ідентична першій, але з накладеною рельєфною текстурою. Завдяки цьому змінюється реакція при затемненні, в результаті чого ефект горбистої поверхні робить сферу схожою на апельсин.

Рельєфне текстурування — метод в комп'ютерній графіці, що потрібен для додання більш реалістичного й насиченого вигляду поверхні об'єктів.

Bump mapping[ред. | ред. код]

Bump mapping[1] — простий спосіб створення ефекту рельєфної поверхні з більшою деталізацією, ніж дозволяє полігональна поверхня. Ефект досягається, головним чином, шляхом освітлення поверхні джерелом світла і чорно-білою (одноканальною) картою висот, шляхом віртуального зсуву пікселя (як у методі Displace mapping) так, якби там був вертекс (але без фізичного й візуального зсуву), внаслідок чого, таким же чином змінюється орієнтація нормалей, які використовуються для розрахунку освітленості пікселя (Затемнення по Фонгу), в результаті отримуємо ділянки, які освітлені й затемнені по-різному. Як правило, Bump mapping дозволяє створити не надто складні горбисті поверхні, пласкі виступи або западини, на цьому його використання завершується. Для більш детальних ефектів згодом був придуманий Normal mapping.[2]

Normal mapping[ред. | ред. код]

Результат роботи технології

Normal mapping — техніка, що дозволяє змінювати нормаль пікселя, що відображається, ґрунтуючись на кольоровій карті нормалей, в якій ці відхилення зберігаються у вигляді текстеля, кольорові складові якого [r,g,b] інтерпретуються в осі вектора [x, y, z], на основі якого обчислюється нормаль, що використовується для розрахунку освітленості пікселя. Завдяки тому, що в карті нормалей використовуються 3 канали текстур, цей метод дає більшу точність, ніж Bump mapping, в якому використовується лише один канал і нормалі інтерпретуються, в залежності від довжини.

Карти нормалей зазвичай бувають двох типів: object-space — використовується для об'єктів, які не деформуються, наприклад, таких як стіни, двері, зброя тощо.[3]

tangent-space — використовується для можливості деформувати об'єкти, наприклад, персонажів.[3]

Для створення карт нормалей зазвичай використовується високополігональна і низькополігональна моделі, їх порівняння дає необхідні відхилення нормалей для останньої.[2]

Parallax mapping[ред. | ред. код]

Докладніше: Parallax mapping

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

Parallax occlusion mapping[ред. | ред. код]

Докладніше: Parallax occlusion mapping

Parallax occlusion mapping є удосконаленою і в той же час однією з найбільш важких для обчислення різновидів Parallax mapping. Фактично являє собою форму локального трасування променів у піксельному шейдері. Трасування променів використовується для визначення висот і обліку видимості текселей. Іншими словами, цей метод дозволяє створювати ще більшу глибину рельєфу при невеликій кількості полігонів і використанні важкої геометрії. Недолік метода — невисока деталізація силуетів і граней.

Реалізувати Parallax occlusion mapping можливо у рамках функціоналу API DirectX Shader Model 3, однак, для отримання оптимальної продуктивності, відеокарта повинна забезпечувати належний рівень швидкості виконання розгалужень у піксельному шейдері. На даний момент Parallax occlusion mapping використовується у деяких комп'ютерних іграх, наприклад, S.T.A.L.K.E.R., Crysis, Metro 2033 тощо. Також ця технологія використовується у популярному бенчмарку 3DMark Vantage.

Displacement mapping[ред. | ред. код]

Bump map vs isosurface2.png

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

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. http://www.ics.uci.edu/~majumder/VC/classes/BEmap.pdf
  2. а б 3D Modeling Fundamentals — Part 2. Архів оригіналу за 12 грудень 2013. Процитовано 31 березень 2015. 
  3. а б Normal Map — Tech Artists Wiki. Архів оригіналу за 13 грудень 2013. Процитовано 31 березень 2015. 

Література[ред. | ред. код]

  • Buss, S.R. V.2 Bump mapping // 3D Computer Graphics: A Mathematical Introduction with OpenGL. — Cambridge University Press, 2003. — 371 p. — ISBN 9780521821032.
  • Birn, J. Digital Lighting and Rendering. — Pearson Education, 2013. — 464 p. — ISBN 9780133439175.
  • Akenine-Möller, T. and Haines, E. and Hoffman, N. Real-Time Rendering, Third Edition. — CRC Press, 2008. — 1045 p. — ISBN 9781439865293.