Створення процедурних матеріалів для графіки
Процедурний матеріал — це алгоритм, а не файл з пікселями. Він генерує текстуру в рантайме або на етапі запікання з математичних операцій: шумів, геометричних форм, логічних масок. Для ігрового виробництва це означає одне принципіальне переваги: параметризацію. Хочеш мокрий асфальт замість сухого — один параметр. Потрібна іржава труба замість нової — інший параметр. Не потрібно перерисовувати текстуру.
Саме це робить процедурні матеріали незамінними для проектів з великою кількістю варіацій оточення.
Substance Designer: граф як виробничий інструмент
Substance Designer — стандартний інструмент для створення процедурних тайлових матеріалів. Логіка роботи: замість шарів у Photoshop — граф нодів, де кожен нод виконує математичну операцію над зображенням. Shape → Transform → Blend → Warp → Level — це базова цепочка для будь-якого структурного матеріалу (цегла, плитка, метал з паттерном).
Ключові ноди, які використовуються в кожному серйозному матеріалі:
Tile Generator — основа для регулярних структур. Параметри: кількість елементів по X/Y, offset між рядами, random rotation, size variation. Саме через ці параметри керується щільність цегли в кладці або гравію на дорозі.
Flood Fill + Flood Fill to Random Color/Grayscale — ізоляція окремих елементів для незалежної модифікації. Наприклад, кожна цегла отримує випадковий варіант Normal Map з набору заготовок. Це розбиває ідеальну повторюваність без втрати бесшовності.
Directional Warp та Warp — деформація для органічних поверхонь: дерево, кора, шкіра, скала. Без Warp процедурні матеріали виглядають математично, а не природно.
Histogram Scan — критично важливий нод для калібровки діапазонів. Всі PBR-значення повинні потрапляти у фізично коректні діапазони: albedo 30–240, roughness 0–1, metallic 0 або 1 (практично бінарно). Histogram Scan з параметром Position та Width дозволяє точно виставити потрібний діапазон.
Приклад з практики: для open-world RPG потребував 15 варіантів кам'яної кладки під різні біоми (тропіки, тундра, пустеля). Замість 15 окремих текстурних сетів був створений один параметричний граф зі змінними: розмір каменів, варіація форми, ступінь сглаженості рубів, тип мху/грязі в швах, weathering intensity. Всі 15 варіантів — експорт з різними значеннями параметрів за один день. Проти трьох тижнів ручної роботи.
Процедурні матеріали у движку
Substance Designer експортує .sbsar файли — скомпільований граф, який можна завантажити у Unity або Unreal та керувати параметрами у рантайме.
У Unity це робиться через Substance for Unity plugin (Allegorithmic, пізніше Adobe). Параметри Substance доступні через ProceduralMaterial.SetProceduralFloat() або через Inspector. На мобільних платформах .sbsar генерують текстури на старті програми — це навантажує CPU, тому для мобайла зазвичай експортують пребейкнуті PNG-варіанти та переключають через Texture2D swap.
У Unreal Engine 5 Substance інтегрований як нативний плагін з підтримкою Blueprint. Параметри можна менювати у рантайме через Blueprint → Set Substance Param → Render Async. Асинхронний рендер важливий — синхронна генерація текстур на CPU може дати помітний фриз.
Для runtime-генерації на мобільних пристроях альтернатива .sbsar — це кастомні шейдери у ShaderGraph (Unity) або Material Graph (Unreal), які вичисляють процедурний матеріал у GPU. Це швидше, але обмежено складністю: базові паттерни (Voronoi для каменю, Perlin для органіки, геометричні паттерни через math nodes) реалізуються добре, складні багатошарові матеріали — ні.
Обмеження та trade-offs
Процедурні матеріали — не серебряна куля. Унікальний hand-painted hero-пропс завжди виглядає багатшим, ніж процедурний аналог при порівняних затратах. Процедурний підхід виправданий там, де потрібні варіації, масштаб або динамічна зміна.
Ще один нюанс: граф у Substance Designer складно підтримувати без документації. Через три місяці відкрити власний граф з 200 нодів без коментарів — майже те ж саме, що читати чужий код без документації. Тому production-графи завжди супроводжуються описанням ключових параметрів та логіки.
Етапи роботи над процедурним матеріалом
| Масштаб завдання | Орієнтовний термін |
|---|---|
| Один базовий тайловий матеріал (Substance Designer граф) | 2–4 дні |
| Складний органічний матеріал (кора, скала, шкіра) | 4–8 днів |
| Параметричний набір (один граф з 5–10 варіантами) | 5–10 днів |
Інтеграція .sbsar у движок з runtime-керуванням |
2–4 дні |
Почнемо з аналізу візуального референса та визначення ключових параметрів варіативності. Потім — прототип у Substance Designer, узгодження діапазонів з арт-директором, доробка та експорт під цільовий движок.
Вартість визначається після аналізу вимог: кількість матеріалів, потрібний рівень параметризації, цільова платформа.





