Перейти до вмісту

Текстура (тривимірна графіка)

Матеріал з Вікіпедії — вільної енциклопедії.
1 — 3D-модель без текстур
2 — 3D-модель з текстурами

Текстура (англ. Texture mapping) — це спосіб надання поверхні 3D деталі — полігону: кольору, фактури, блиску, матовості та інших фізичних властивостей (для імітації найчастіше якогось природного матеріалу, наприклад: паперу, дерева, каменю, металу тощо).

Поняття «текстура» є важливим елементом 3D-моделювання, оскільки дозволяє відтворити також малі об'єкти поверхні, створення яких полігонами виявилося б надмірно ресурсомістким. Наприклад, шрами на шкірі, складки на одязі, дрібні камені, предмети на поверхні стін і ґрунту та багато іншого. Отже, текстура використовується для заповнення поверхонь об'єктів і як шар для додання певного ефекту або зміни геометрії всьому зображенню або його частини.

Текстури бувають шовні та безшовні (патерни або візерунки). Головна відмінність останніх в тому, що при поєднанні одних і тих же фрагментів поверхня залишається цілісною.

Якість поверхні текстури визначається текселями — кількістю пікселів на мінімальну одиницю текстури. Оскільки сама по собі текстура є зображенням, роздільність текстури і її формат відіграють велику роль, яка згодом позначається на загальному враженні від якості графіки у 3D-додатку.

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

Карта текстури

[ред. | ред. код]
Приклад роботи мультитекстури на об'єкті: 1. Сфера на яку накладено: 2. Diffuse і bump карти; 3. Diffuse карта лише; 4: Opacity та Diffuse карти.

Карта текстури застосовується для утворення певного параметру візуального відображення на поверхні заданої форми. Цей процес нагадує застосування візерунчастого паперу на звичайній білій коробці. Кожній вершині в 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 з метою зменшення кількості полігонів моделі без втрати якості візуального відображення.
  • Normal map — карта для імітації рельєфу поверхні. Дозволяє змінювати нормаль відображуваного пікселя ґрунтуючись на кольоровій карті нормалей, в якій ці відхилення зберігаються у вигляді текселя, колірні складові якого [rgb] інтерпретуються в осі вектора [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.

Див. також

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

Джерела та література

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