Создание процедурных материалов для графики

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Создание процедурных материалов для графики
Сложная
~3 рабочих дня
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Создание процедурных материалов для графики

Процедурный материал — это алгоритм, а не файл с пикселями. Он генерирует текстуру в рантайме или на этапе запекания из математических операций: шумов, геометрических форм, логических масок. Для игрового производства это означает одно принципиальное преимущество: параметризацию. Хочешь мокрый асфальт вместо сухого — один параметр. Нужна ржавая труба вместо новой — другой параметр. Не нужно перерисовывать текстуру.

Именно это делает процедурные материалы незаменимыми для проектов с большим количеством вариаций окружения.

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 ParamRender Async. Асинхронный рендер важен — синхронная генерация текстур на CPU может дать заметный фриз.

Для runtime-генерации на мобильных устройствах альтернатива .sbsar — это кастомные шейдеры в ShaderGraph (Unity) или Material Graph (Unreal), которые вычисляют процедурный материал в GPU. Это быстрее, но ограничено сложностью: базовые паттерны (Voronoi для камня, Perlin для органики, геометрические паттерны через math nodes) реализуются хорошо, сложные многослойные материалы — нет.

Ограничения и trade-offs

Процедурные материалы — не серебряная пуля. Уникальный hero-пропс с ручной росписью всегда выглядит богаче, чем процедурный аналог, при сопоставимых затратах. Процедурный подход оправдан там, где нужны вариации, масштаб или динамическое изменение.

Ещё один нюанс: граф в Substance Designer сложно поддерживать без документации. Через три месяца открыть собственный граф из 200 нодов без комментариев — почти то же самое, что читать чужой код без документации. Поэтому production-графы всегда сопровождаются описанием ключевых параметров и логики.

Этапы работы над процедурным материалом

Масштаб задачи Ориентировочный срок
Один базовый тайловый материал (Substance Designer граф) 2–4 дня
Сложный органический материал (кора, скала, кожа) 4–8 дней
Параметрический набор (один граф с 5–10 вариантами) 5–10 дней
Интеграция .sbsar в движок с runtime-управлением 2–4 дня

Начинаем с анализа визуального референса и определения ключевых параметров вариативности. Потом — прототип в Substance Designer, согласование диапазонов с арт-директором, доработка и экспорт под целевой движок.

Стоимость определяется после анализа требований: количество материалов, необходимый уровень параметризации, целевая платформа.