Які недоліки маркування кожного краю як шва при розкручуванні сітки?


9

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

Що стосується розгортання моделей, у всіх навчальних посібниках підкреслюється необхідність розмітки якомога менше швів при розкручуванні сітки. Моє питання: чому? Я здогадуюсь, що це надзвичайно очевидно для людей, які мають досвід моделювання, але не для мене (враховуючи, що мої зусилля щодо текстурування в основному обмежуються створенням AO або звичайних карт).

Я здогадуюсь, що це суто стосується збереження форми моделі, коли справа стосується редагування дифузної текстури? Це єдина причина, що ви не хочете просто вирізати кожен край і викласти всі обличчя окремо?

Я усвідомлюю, що виявляю моє цілковите незнання теми, коли задаю це питання, тому вибачтесь, але іноді над очевидними речами найважче знайти відповіді на .

Відповіді:


10

Кожен "УФ-шов" у вашій моделі - тобто кожне місце, де обличчя моделі безперервні, тоді як УФ-карта для одного і того ж краю вирізана - є проблемою як для художників, так і для обладнання.

  • Це ускладнює правильну текстуру моделі. Це особливо актуально, коли редагування проводиться на текстурі безпосередньо, у 2D, а не в програмі 3D-малювання. Чим менше таких швів, тим простіше подумки обмотати фактуру навколо моделі.
  • Хоча просте змішування може працювати для дифузної текстури та деяких інших типів текстури, ви повинні бути дуже обережними з такими речами, як дотична карта звичайної карти. Для цього не можна просто лінійно поєднувати (інтерполювати) між значеннями X і Y (як правило, зіставлені на R і B у переглядачах текстур), без того, щоб отриманий нормальний вектор денормалізувався і шов став видимим (як правило, трохи темніше "лінія") при деяких умовах освітлення. З іншого боку, намагання зафіксувати її текстурою і зробити значення обох УФ-країв близькими один до одного або однаковими, це може призвести до того, що шов стане видимим, оскільки він неприродно плоский порівняно з рештою моделі.
  • Піксельним шейдерам доводиться більше працювати при кожному розриві (навіть якщо це зазвичай абстрагується в апаратному забезпеченні в даний час), і потрапляти в різні місця пам'яті, щоб отримати дані текстури (що, як правило, менш оптимізований "шлях коду" в апараті) , на відміну від звичайної роботи з просторово близькими значеннями текстури.
  • Автоматичне картографування (і дуже небагато магазинів може дозволити собі торкнутися створених текстур нижчої роздільної здатності вручну) порушить всю нелегку роботу, яку ви та ваші художники зробили, щоб зробити шов невидимим при роздільній здатності за замовчуванням.

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


Відмінна думка про некогерентний доступ до пам'яті в піксельному шейдері. Стрибки навколо такої текстури дійсно втратять кеш текстури.
Боб Сомерс

@Bob Somers: Якщо чесно, це не буде великим результатом, якщо ви не програмуєте для низького класу або мобільної платформи, або ви вже оподатковуєте GPU (и) до максимуму.
Мартін Сойка

Хороший момент Мартін. Я жив на землі GPGPU протягом минулого року, пишучи код, залежний від продуктивності, тому я вважав, що це цікавий момент, який не відразу очевидний. :)
Боб Сомерс

6

Дві великі причини мають сенс розгорнутої текстури та артефактів краю .

Як ви вже згадували, художнику може бути дуже важко зрозуміти, як їх 2D-редагування буде обертатися навколо 3D-моделі, якщо шви не мають сенсу. У випадку, коли кожне обличчя було розділене та оптимально розміщене за допомогою якогось алгоритму упаковки у сміттєві контейнери, редагувати текстуру вручну було б майже неможливо. Сподіваємось, вони сьогодні використовують якийсь інструмент 3D-малювання, але все-таки приємно (і потрібно!) Вносити правки безпосередньо на 2D-текстуру.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.