Текстурирование и материалы
Художник отправляет ассет в движок — и он выглядит как пластиковая игрушка. Геометрия правильная, нормали в порядке, но материал не считывается как металл или потёртая кожа. Причина почти всегда одна: либо неправильно настроены PBR-каналы, либо художник рисовал «на глаз» без понимания физической модели, которую использует рендерер движка.
Текстурирование для игр сегодня — это работа с физически корректными материалами, процедурными системами и жёсткими ограничениями по памяти.
PBR-пайплайн: что это на практике
PBR (Physically Based Rendering) — не художественный стиль, а набор правил, при которых материал ведёт себя физически предсказуемо при любом освещении. В Unity (URP/HDRP) и Unreal это стандарт по умолчанию.
Два основных workflow:
Metal/Roughness (используется в Unity URP, Unreal):
- Base Color — диффузный цвет без информации об освещении. Ошибка: добавлять fake-тени или блики прямо в base color.
- Metallic — бинарная карта: 0 (диэлектрик) или 1 (металл). Промежуточные значения — только для переходных зон (ржавчина на металле, пыль).
- Roughness — 0 зеркальная поверхность, 1 полностью матовая. Это самая «художественная» карта из всего набора.
- Normal Map — симуляция рельефа без добавления геометрии.
- AO (Ambient Occlusion) — затемнение в углублениях. В HDRP запекается отдельно и смешивается в шейдере.
Specular/Glossiness (старый workflow, Photoshop legacy):
- Base Color + Specular + Glossiness. Используется реже — в основном в старых проектах или при работе со Spec/Gloss pipeline в Substance Painter для совместимости.
Граничные значения для диэлектриков: base color не темнее #383838 и не светлее #E0E0E0 — иначе материал начинает «светиться» или «проваливаться» в темноту при HDR-освещении. Для металлов base color = цвет отражения (золото — тёплый, хром — нейтральный).
Substance Designer: процедурный пайплайн в глубину
Если Substance Painter — это ручная покраска по уже готовой геометрии, то Substance Designer — это программирование материала. Нодовый граф, на выходе которого — набор текстурных карт, генерируемых алгоритмически.
Это принципиально меняет рабочий процесс для тайловых материалов (тайлинг текстуры земли, кирпича, бетона, металлических панелей). Вместо того чтобы рисовать 2K-текстуру руками, художник собирает граф, который можно:
- Параметризировать — один граф «каменная кладка» с параметрами: размер камня, зазор между камнями, степень замшелости, влажность. Продюсер просит вариант «мокрого камня ночью» — художник двигает ползунки, не переделывая работу с нуля.
- Масштабировать без потери качества — процедурный материал рендерится в любом разрешении. Сделали граф в 2K, нужно 4K для cinematic-кат-сцены — пересчитываем экспорт.
- Поддерживать в Runtime — Substance Engine (теперь часть Adobe) позволяет изменять параметры материала прямо в движке. Это используется для динамических материалов: покрытие грязью, кровь, износ.
Строительные блоки графа в Designer:
- Shape nodes — геометрические примитивы (прямоугольник, окружность, полигон). Основа для тайловых паттернов.
- Noise nodes (Perlin, Gaussian, Cells, Voronoi) — органические нерегулярности. Правило: ни один реальный материал не является строго регулярным, шум — это база.
- Tile Generator / Splatter — ключевые ноды для создания паттернов. Tile Generator раскладывает фигуру по тайловой сетке с контролем смещения, ротации, масштаба.
- Warp nodes (Directional Warp, Warp) — деформация по карте нормалей или градиенту. Создаёт органические потёки, сдвиги, трещины.
- Blend — смешение слоёв с маскированием. Здесь собирается финальный compositing: base color = blend(чистый металл, ржавчина, маска по curvature).
- Normal Map nodes (Normal, Normal Combine) — синтез нормалей из height-данных или их комбинирование.
Типичный граф для материала «промышленный металл»:
[Shape: прямоугольная панель]
↓
[Tile Generator: сетка панелей с небольшим offset]
↓
[Warp: микровмятины от Gaussian noise]
↓
[Blend: добавление curvature-маски → ржавчина по рёбрам]
↓
[Blend: потёки по Directional Warp]
↓
[Export: BaseColor / Metallic / Roughness / Normal / AO]
Такой граф переиспользуется в разных проектах, параметризируется под стиль конкретной игры и не требует переделки при смене разрешения текстуры.
Substance Painter: ручное текстурирование
Painter — инструмент для покраски конкретного ассета по его геометрии. Главные возможности:
Baked mesh maps — запечённые карты (AO, Curvature, Normal, Position, Thickness) автоматически становятся масками для генераторов. Это ключевое: ржавчина автоматически появляется на рёбрах (по Curvature), грязь — в углублениях (по AO), потёртости — на выступах.
Smart Materials — предустановленные стеки слоёв с уже настроенными генераторами. Правильно построенный Smart Material для «состаренной кожи» применяется на любую модель с корректными baked maps и сразу даёт 70% результата.
UDIM-workflow в Painter — для персонажей с несколькими UV-тайлами. Каждый тайл рисуется в отдельном texture set, но Painter показывает их на модели одновременно. Экспорт — отдельный файл на каждый тайл.
Hand-painted текстурирование
Стиль, при котором освещение «рисуется» прямо в текстуру, минуя физическую модель. Характерен для мобильных игр без динамического освещения (unlit шейдер), стилизованных проектов (Blizzard-стиль WoW), mobile idle/merge.
Инструменты: Photoshop (классика), Procreate (планшет), Krita (open source). Часть художников рисует в Substance Painter с отключённым PBR-preview.
Ограничение: такая текстура «сломается» при смене условий освещения. Запечённые тени не реагируют на движущийся источник света. Для статичных сцен или mobile — норма, для 3D-экшена с динамическим светом — нет.
Quixel Mixer и Megascans
Quixel Mixer — бесплатный инструмент (для проектов на Unreal Engine — полностью бесплатно через Megascans Bridge). Позволяет смешивать фотосканированные материалы из библиотеки Megascans прямо на геометрии с маскированием по curvature и AO. Для проектов на Unreal — мощная альтернатива Designer для окружения.
Megascans — библиотека фотосканированных материалов и мешей: камни, земля, кора, металл, бетон. Используется как base layer, поверх которого Painter или Designer добавляет уникальные детали.
Ограничения по памяти
Текстурная память — прямой расход VRAM. Правила:
| Платформа | Максимальная текстура на hero asset |
|---|---|
| Mobile (mid-range) | 1K–2K (сжатие ETC2 / ASTC) |
| PC / Console | 2K–4K (BC1–BC7) |
| VR | 1K–2K (сжатие обязательно) |
Форматы сжатия важны: BC7 для RGBA даёт хорошее качество при 8 bpp. ASTC для мобайла настраивается по соотношению quality/size. Никогда не экспортировать PNG в продакшен без компрессии — это прямой расход памяти в 4–8x.
Что мы делаем в рамках услуги
- PBR-текстурирование в Substance Painter (Metal/Roughness workflow) под Unity URP/HDRP и Unreal Engine.
- Разработка процедурных тайловых материалов в Substance Designer с параметризацией.
- Hand-painted текстурирование для стилизованных и мобильных проектов.
- UDIM-пайплайн для персонажей и hero assets.
- Оптимизация текстурных сетов под целевую платформу (атласирование, сжатие, LOD-текстуры).





