Усі статті
Туторіали · 7 min read

Вершинне малювання для змішування матеріалів: переходи без видимих швів террейну та мешів

Як вершинне малювання змішує матеріали, щоб убити видимі шви, трюк height-blend, що б'є лінійну альфу, вписування бруду в траву й моху на камінь, міркування продуктивності, і де це вписується поряд з декалями й тайловими текстурами.

Aerial view of a forested river valley crossed by a steel bridge and a road

Коротко: жорсткі шви там, де один матеріал зустрічає інший, трава впирається в камінь, бруд зустрічає камінь один з найбільших видавальних ознак аматорського оточення. Вершинне малювання змішує матеріали прямо на меші, щоб стерти ці шви, а «height blend» робить перехід природним, а не як розчинення. Ця стаття пояснює, як працює вершинне змішування, трюк height-blend, що відділяє хороші переходи від брудних, де його малювати, що це коштує в рантаймі, і як воно поєднується з декалями й тайловими текстурами.

Річкова дельта, де вода, мул і рослинність переходять одне в одне У природи немає жорстких країв. Там, де вода зустрічає мул зустрічає траву, перехід неправильний і зчеплений. саме те, що вершинне змішування відтворює, щоб твої матеріали перестали зустрічатися прямими, очевидними лініями.

Проблема: шви видають усе

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

У тебе можуть бути дві фотореалістичні текстури й усе одно вийти оточення, що виглядає неправильно, бо перехід між ними, там, де живе правдоподібність. У реальному світі матеріали взаємопроникають: бруд вмивається в тріщини, трава рідшає в стежку, сніг збирається на виступах. Ігрова поверхня, що перемикається з трави на камінь уздовж чіткого краю полігону, кричить «зроблено з плиток». Вершинне малювання, первинний інструмент для розчинення цих країв, дозволяючи матеріалам стікати одне в одне так, як вони роблять надворі.

Як працює вершинне змішування

Кожна вершина зберігає дані кольору/альфи; blend-матеріал читає їх, щоб змішувати дві або більше текстур на піксель по поверхні. Намалюй дані вершин у движку, і матеріали переходять усюди, де ти малював, без зайвих UV чи геометрії.

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

Трюк height-blend

Не змішуй лінійно по альфі, змішуй, використовуючи карту висот, щоб верхній матеріал заповнював тріщини й низини спершу. Лінійне змішування дає м'яке брудне розчинення; height-змішування дає чіткий, природний, зчеплений перехід.

Це єдине найважливіше покращення твого blend-матеріалу, і це те, що відділяє професійний перехід від розмазаного. Наївний blend розчиняє лінійно між двома текстурами вздовж маски, породжуючи м'яке, примарне накладення, що виглядає як градієнт із Photoshop. Height blend натомість використовує інформацію висоти/зміщення матеріалів, щоб вирішити перехід: вхідний матеріал осідає спершу в низькі зони, шви розчину, тріщини, вм'ятини, перш ніж покрити високі точки, рівно як справжні бруд, пісок чи сніг, що збираються. Результат, різка, неправильна, правдоподібна межа замість розмитого розчинення. Якщо твої blend'и виглядають брудними, додавання переходу на основі висоти майже завжди — рішення.

Край лісу, що зустрічає відкриту місцевість, рослинність рідшає Край лісу — це blend у дикій природі: лінія дерев не зупиняється на лінії, вона розсіюється й рідшає. Вершинне змішування на основі висоти відтворює цей рваний, зчеплений перехід замість чистої межі.

Де його малювати

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

Вершинне змішування окупається найбільше в місцях, де око перевіряє реалізм: точки контакту й зони зносу. Кілька цінних місць, які завжди варто розглянути, бруд і волога, що заповзають на основу стін; потертості й оголений матеріал на кутах підлог і сходинок, куди приземляються ноги; мох і лишайник на північних/тіньових гранях каменів; бруд і застояна вода в найнижчих точках; і шви між шарами террейну на ландшафті. Це ті самі місця, які оформлює оповідач, бо там місце показує свою історію. Намалюй їх, і чистий, новий на вигляд кіт раптом читається як вивітрений і справжній.

Продуктивність і межі

Blend-матеріали коштують більше на піксель (вони семплять кілька наборів текстур), тож використовуй їх там, де переходи важливі, не всюди. Вершинна деталь обмежена щільністю меша. Ти можеш малювати лише так дрібно, як дозволяють твої вершини.

Змішування не безкоштовне: дво- чи тришаровий blend-матеріал семплить кілька текстур на піксель, тож дорожчий за один матеріал. Це нормально на геройському террейні й поверхнях, що вивчає камера, але суцільне застосування чотиришарового blend'а до кожного меша марнує GPU. Інша межа, роздільність: вершинне малювання може бути детальним лише настільки, наскільки щільний меш, тож low-poly стіна не може нести тонкий мальований перехід, ось де вступають декалі, щоб додати деталь меншого масштабу зверху. Використовуй правильний інструмент на кожному масштабі: вершинний blend для широкого переходу, декалі для чіткої локальної деталі.

Де воно вписується з іншими інструментами

Вершинний blend обробляє середньомасштабний перехід матеріалу; тайлові текстури дешево дають базову деталь; декалі додають чіткі локальні риси (тріщини, плями, протікання), надто дрібні, щоб малювати по-вершинно. Вони складаються.

Жоден із цих інструментів не конкурує. Вони нашаровуються. Тайлові текстури дають тобі доступну високочастотну деталь по великих поверхнях. Вершинне змішування перемішує ці тайлові матеріали, щоб вони не зустрічалися жорсткими лініями. Декалі потім сідають зверху для конкретних, гострих деталей, яких вершинна роздільність не досягає, тріщина, опік, водяна пляма над швом. Зріла поверхня оточення зазвичай усі три одразу. Ввести правдоподібне змішування матеріалів у гру, і запекти його в стандартні матеріали движка, щоб воно не коштувало нічого несподіваного в рантаймі — це рівно той вид роботи над поверхнями, який Numivo побудований робити рутиною, щоб шви зникали без замовного шейдера для кожної зустрічі двох матеріалів.

Польові числа, які варто вкрасти

  • Покращення, що чинить брудні blend'и: height blend, не лінійна альфа
  • Стеля деталі вершинного малювання = щільність вершин меша, щільніший меш, дрібніше малювання
  • Найцінніші зони малювання: основи стін, краї підлог, тіньовий камінь, низини
  • Вартість blend-матеріалу масштабується з кількістю семпльованих шарів, резервуй багатошарові blend'и для геройських поверхонь
  • Повний стек: тайлова база → вершинний blend → декалі для локальної деталі

Міні-FAQ

Вершинне малювання проти splat/weight-карти для террейну? Та сама ідея, інше зберігання, террейн часто використовує карти ваг шарів (текстурну маску) замість вершинних кольорів, що розв'язує деталь від щільності меша. Меші використовують вершинні кольори; великі террейни часто використовують карти шарів. Принцип height-blend застосовується до обох.

Чому мій blend виглядає м'яким і брудним? Ти майже напевно змішуєш лінійно по альфі. Перемкнися на blend, керований висотою/зміщенням, щоб перехід осідав спершу в низькі зони, і м'якість перетворюється на чіткий, природний край.

Скільки blend-шарів забагато? Два дешеві й покривають більшість переходів; три звичні для террейну; чотири-плюс стають дорогими й важкими для створення. Якщо потрібно більше, спитай, чи послужать декалі або другий матеріал краще.

Чи потрібен мені кастомний шейдер для цього? Логіка blend'а достатньо стандартна, щоб більшість движків і тулсетів її надавали, а запікання в прості матеріали движка тримає вартість рантайму передбачуваною. Тобі рідко потрібен замовний код шейдера, тобі потрібне налаштування height-blend і розумне місце, де малювати.

Шви — це де правдоподібні оточення виграються або програються. Малюй свої переходи там, де поверхні реально взаємодіють, змішуй за висотою замість плаского розчинення, і складай тайлінг і декалі навколо, і твої матеріали зустрічатимуться так, як вони роблять у світі: неправильно, зчеплено, і без жодної видавальної прямої лінії.