Текстура (тривимірна графіка)
Текстура (англ. Texture mapping) — це спосіб надання поверхні 3D деталі — полігону: кольору, фактури, блиску, матовості та інших фізичних властивостей (для імітації найчастіше якогось природного матеріалу, наприклад: паперу, дерева, каменю, металу тощо).
Поняття «текстура» є важливим елементом 3D-моделювання, оскільки дозволяє відтворити також малі об'єкти поверхні, створення яких полігонами виявилося б надмірно ресурсомістким. Наприклад, шрами на шкірі, складки на одязі, дрібні камені, предмети на поверхні стін і ґрунту та багато іншого. Отже, текстура використовується для заповнення поверхонь об'єктів і як шар для додання певного ефекту або зміни геометрії всьому зображенню або його частини.
Текстури бувають шовні та безшовні (патерни або візерунки). Головна відмінність останніх в тому, що при поєднанні одних і тих же фрагментів поверхня залишається цілісною.
Якість поверхні текстури визначається текселями — кількістю пікселів на мінімальну одиницю текстури. Оскільки сама по собі текстура є зображенням, роздільність текстури і її формат відіграють велику роль, яка згодом позначається на загальному враженні від якості графіки у 3D-додатку.
Створення параметрів матеріалу здійснюється за допомогою використання карт (зображення) розташованих у відповідних каналах, або за допомогою процедурних карт, а також змішаного методу.
Карта текстури
Карта текстури застосовується для утворення певного параметру візуального відображення на поверхні заданої форми. Цей процес нагадує застосування візерунчастого паперу на звичайній білій коробці. Кожній вершині в 3D моделі присвоюється координати текстури (яка у разі 2D відома, як UV координата). Місця відбору проб зображення згодом інтерполюється по поверхні моделі з отриманням візуального результату.
Найчастіше це файл растрового (рідше векторного) зображення з розширенням JPEG, PNG або PAT.
Типи карт
- Diffuse map (карта базового кольору) — текстура, якою задається основний колір поверхні. Для того, щоб добре працювати з картою нормалей, дзеркальною та іншими картами дифузна карта не повинна мати ніякого спрямованого світла на своїй поверхні, вона повинна мати тільки загальні навколишні оклюзії, тобто поверхня стає темніша в глибоких тріщинах і навколо тиснення деталі;
- Specular map (карта відбиття) — карта, яка показує здатність відображення матеріалу. На відміну від reflection map, specular map не показує відображення сцени, в якій знаходиться об'єкт, а зображує відбиття світла падаючого на нього. Specular Map містить в собі пікселі в чорно-білій колірній гамі. Чим світліший піксель, тим більше здатність матеріалу відбивати світло і тим яскравіше на ньому відблиски від світла. Відповідно чим темніший піксель, тим більш матовим стає матеріал і втрачає свою властивість відбивати світло. Для матеріалів керамічної плитки і полірованого металу можуть використовуватися світлі тони, а для тканин і дерева темні;
- Bump map (карта рельєфу) — карта для імітації рельєфу поверхні. Створюється в градаціях сірого кольору. При рендерингу сірі області карти (мається на увазі сірий колір — R = 150, G = 150, B = 150) відображатиметься звичайним чином, чорні будуть замальовуватись, а білі — освітлюватись (чим область світліше, тим більше рівень яскравості) — ця ілюзія світла і тіні створює ефект рельєфу поверхні;
- Normal map — карта для імітації рельєфу поверхні. Дозволяє змінювати нормаль відображуваного пікселя ґрунтуючись на кольоровій карті нормалей, в якій ці відхилення зберігаються у вигляді текселя, колірні складові якого [r, g, b] інтерпретуються в осі вектора [x, y, z], на основі якого обчислюється нормаль, використовувана для розрахунку освітленості пікселя. Завдяки тому, що в карті нормалей використовують 3 каналу текстури, цей метод дає більшу точність, ніж Bump mapping, в якому використовується тільки один канал і нормалі, по суті, всього лише інтерпретуються в залежності від «висоти»;
Карти нормалей зазвичай бувають двох типів: object-space — використовується для об'єктів, що не деформуються, таких як стіни, двері, зброя тощо; tangent-space — застосовується для можливості деформувати об'єкти, наприклад персонажів. Для створення карт нормалей зазвичай використовується високополігональні і низькополігональні моделі, за їхнім порівнянням встановлюють потрібне значення відхилення нормалей.
- Displacement map — карта зміщення, для показу рельєфу поверхні. Також представляється в градаціях сірого кольору. Принципова відмінність від попередніх двох методів, що цей спосіб автоматично посправжньому моделює за картою полігони. Природно він найякісніший і найбільш ресурсомісткий;
- Height map — двовимірний масив, кожен елемент якого інтерпретується як висота. Часто використовуються в програмах для створення ландшафтів (Terrain), щоб зберігати інформацію про висоту кожної точки місцевості. Використовуються також в технології бамп-маппінга (bump mapping);
- AmbientOcclusion (AO) map — карта затінення;
- Reflection map — карта відображення;
- Curvature (Concave, Convexity, Pits, Peaks, Worn Edge) map — карта, яка зберігає опуклості, вигини сітки;
- Opacity map (opaque map), (карта непрозорості) — формується на основі чорно-білої текстури, де повністю чорний колір буде відображатися прозорим (вирізатися з дифузної карти), білий повністю залишатиметься відображатись, а сірі відтінки відображатимуться напівпрозоро з альфа інтенсивністю;
- Glow map;
- DuDv;
- Flow map — карта направлення текстури, також називають векторним полем;
- Radiosity normal map — карта використовується в основному при запіканні текстур;
- Roughness;
- HGlossiness;
- RGlossiness;
- Anisotropy;
- An.rotation;
- Refract;
- Glossiness;
- IOR;
- Translucent;
- Enviroment.