Texel density. Навіщо потрібен і як його застосовувати

Ця стаття призначена 3d-художникам, технічним художникам, а також всім розробникам, які пов'язані з 3д графікою, текстурами і складанням технічних завдань. В ній я покажу чим може бути корисне дотримання одному текселю, як його рахувати і на що він може впливати. Основні дійові особи — чеккер, моделі, текстури, мыльцо, UV та інші радості розробки 3d контенту.

0. Що таке texel density.
Для початку, що таке тексель. Texel (абревіатура від двох слів «TEXture» і «ELement» — структура, елемент) — елемент текстури, «точка». Текстура, у свою чергу, являє собою масив текселей. Тексель може представляти собою кольорову крапку в зображенні. Але, оскільки, текстура може бути не тільки зображенням (двовимірним масивом кольорових точок), а також і іншими масивами даних різних типів і розмірності, то тексель, як текстурний елемент — більш загальне поняття.

Texel density (текселерация, тексель (скорочено, в контексті)) — це величина, яка є відношенням розміру текстури (в пікселях) до габаритів 3d моделі в сцені. Texel density характеризує щільність, «якість» текстури, в загальному сенсі. Виглядає в техзавданні приблизно так: 256px/m, 128px/inch, і так далі. Таким чином, текселерация визначає яка площа текстури буде віддана на модель виходячи з її розмірів. Високий texel density означає більшу деталізацію текстурою, низький — меншу, розмиту текстуру.

1. Застосовність texel density.
Найбільше значення робота з текселерацией має при роботі з оточенням. Це пов'язано з тим, що в оточення частіше використовуються тайленные текстури, текстури атласи і на об'єкти оточення рідко виділяють окремі карти (на пропсы, хіба що). Наприклад, до персонажів, абсолютна текселерация не має такого важливого значення, т. к. в основному, всі персонажі мають схожі фізичні розміри. В техзавданні на персонажа цілком може бути таке: використовувати 2 сети текстур, 2048*2048 для тіла, 1024*1024 для голови, і задача художника вичавити максимальний тексель, правильно зробивши UV розгортку. Для елементів оточення, зазвичай вказують абсолютний тексель (наприклад, 256px/m), т. к. вони сильно різняться за розмірами (стіна будинку, автомобіль, дорога, поштова скринька).

2. Відносна і абсолютна текселерация
Поділ умовний, але, думаю, буде корисно зробити на цьому акцент. Існує відносна текселерация (в межах однієї моделі) і абсолютна — в межах всієї игрых/сцени.

Відносна текселерация повинна задовольняти наступним вимогам:

Єдиний texel density по всій моделі (допускається незначне збільшення текселя на дрібних деталях UV) З цього правила є кілька винятків: важливі деталі повинні займати більше місця на розгортці (і текстурою), наприклад обличчя персонажа повинна мати більший texel density. Ті деталі, які не видно чи погано видно повинні мати менший тексель (наприклад, днище автомобіля, підошви черевиків у персонажа).

Максимально можлива текселерация на унікальних моделях. Це загальна вимога до якості, згадане вище.


Приклад хорошої і поганої текселерации (Джерело: quixel.se/tutorial/uv-mapping-for-the-suite)


Приклад виключення. Зверніть увагу на різницю між чіткістю текстур на обличчі й одязі — і це правильно, т. к. увагу гравця більше направлено на особу, а не на одяг. (Джерело: Fallout 4)

3. Як розраховується texel density
Тексель розраховується дуже просто: необхідно знати розмір геометрії і дозвіл текстури, а потім поділити дозвіл текстури на розмір геометрії.

Подивіться на ілюстрацію. Тут зображено куб розмірами: 1м*1м і площини різних розмірів. На всі об'єкти текстуру 1024*1024 пікселів, відповідно, ми маємо наступні texel density для об'єктів, зліва направо: 512px/m, 1024px/m, 2048px/m. Використовується тільки одна текстура, але об'єкти різні за розмірами і, отже, ми отримуємо різний texel density.

Також 3d-художники використовують різні скрипти та інструменти для підрахунку texel density. Крім показаного вище способу підрахунку (тобто створення спеціальної еталонної текстури і підгонки вручну «під квадратики»), існую ряд сценаріїв для вимірювання та встановлення потрібного texel density:

3ds Max
Advanced UV Normalizer
Textools

Maya
Nightshade UV
UV Deluxe

Blender
Хто знає, підкажіть в коментарях, додам.

4. Як можна навести ассеты до однієї щільності?
1. Редагування UV, використання тайлів


Зліва направо: збільшена розгортка UV у два рази, без змін, зменшена в 2 рази. Таким чином на ілюстрації всі об'єкти мають один texel density рівний 1024px/m.

2. Зміни розміру текстур


Для великого об'єкта використана велика текстура, для меншого — менша.

3. Зміни розмірів об'єкта. Так, таким чином можна вплинути на texel density, але на практиці ніхто не буде робити автомобіль менше в два рази лише тому, що за texel density не вистачає щільності текстури?

5. Як використовувати texel density, висновки та корисні поради
1. Почніть з правильних розмірів.
У движку, в редакторі, слід встановити еталонний масштаб і одиниці вимірювання. Це слід зробити на самому початку розробки і дотримуватися до кінця.

2. В документації спробуйте визначити важливість ассетов і відповідно, якість текстур для них. Ассеты першого плану (наприклад, зброя, руки в FPS, персонаж в TPS, поблизу очей VR додатки), предмети важливі для геймплея (наприклад, броня в Fallout 4, верстак, HL2 аптечка на стіні і т. д.), предмети оточення і предмети дальнього плану. Тут не завадить зробити тести прямо в движку з еталонними текстурами, прикинути як це буде виглядати. Для кожного типу ассета можна використовувати власний texel density.

3. Продовжувати слідувати цим значенням і при постановці завдання вказувати їх у ТЗ.
Дотримання одному texel density для предметів схожих планів і однієї значущості дасть можливість зробити арт гри більш цільним, з нього не будуть випадати окремі елементи в стилі «Ви погано промальовані, вас скоро вб'ють». Також, при використанні цього підходу, буде менше ймовірність витратити ресурси нераціонально (в симуляторі машиніста, на милиці ЗАЛІЗНИЧНОГО полотна використовувати текстури 1024*1024, наприклад).

4. Поки я писав чернетка Leonardo Iezzi зробив відмінний урок texel density. Обов'язково ознайомтеся зі статтею Leonardo, якщо дана тема цікава.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.