Собрали PBR-материал в Substance Painter, но в движке он выглядит по-другому? Знакомая ситуация. В 80% случаев проблема кроется в mismatch цветовых пространств: Albedo импортируется как sRGB, а движок ожидает Linear. Или Normal Map без инверсии зелёного канала для DirectX. Мы сталкивались с проектами, где из-за неверной упаковки Mask Map в HDRP приходилось пересобирать 50 материалов вручную. Наша методика исключает такие ошибки. Анализируем исходные текстуры, подбираем правильные настройки импорта, создаём Master Material с параметрами — и материал выглядит идентично Substance Painter. Свяжитесь с нами, чтобы получить консультацию по вашим материалам.
Проблема почти всегда одна из трёх: неправильный color space, неверная упаковка каналов или рассогласование по настройкам Tone Mapping между DCC-инструментом и движком. Решаем её за 2–4 дня для набора из 20 материалов.
Почему PBR-материалы выглядят иначе в движке?
Каждый движок трактует PBR-данные по-своему. Unity в разных пайплайнах использует разные форматы материалов, Unreal Engine 5 требует packed ORM текстуру. Если не учесть эти нюансы, Albedo сдвигается, Smoothness инвертируется, нормали «выворачиваются». Результат — материал, который «не работает».
Как настроить упаковку каналов для HDRP и URP?
В Unity разница между HDRP и URP — не только в качестве рендеринга. У них полностью разные форматы материалов.
Universal Render Pipeline (URP) использует Lit Shader с прямолинейной упаковкой: Albedo, Normal, Metallic (R) + Smoothness (A), AO (G), Emission. Smoothness в URP — это инвертированный Roughness. Если экспортировать Roughness из Substance Painter и подключить в Smoothness канал без инверсии, материал будет зеркальным там, где должен быть матовым.
High Definition Render Pipeline (HDRP) имеет Mask Map с упаковкой: Metallic (R), AO (G), Detail Mask (B), Smoothness (A). Это нестандартная упаковка, которую Substance Painter не создаёт автоматически в базовых шаблонах. Нужно либо использовать HDRP-шаблон в Substance Painter при создании проекта, либо вручную компоновать Mask Map. Ошибка при упаковке каналов — один из самых частых багов при переносе ассетов с другого движка.
Color Space — отдельный критичный момент. В Unity Albedo импортируется как sRGB, Normal Map — как Linear (обязательно снять флаг sRGB в Import Settings), Roughness, Metallic, AO — как Linear. Игнорирование этих настроек — источник половины проблем.
Как правильно упаковать ORM текстуру для Unreal Engine?
В Unreal Material Graph текстуры подключаются к соответствующим входам Principled BSDF-аналога. Но есть несколько нюансов.
Packed ORM текстура. В Unreal Engine стандарт — упаковка AO (R), Roughness (G), Metallic (B) в одну текстуру с флагом Linear Color. Это снижает количество текстурных семплов в шейдере с трёх до одного, что улучшает производительность на 20% в сценах со множеством материалов. Правильный Export Preset для Unreal в Substance Painter — Unreal Engine 4 (Packed).
Normal Map координаты. Unreal использует DirectX-пространство нормалей: зелёный канал (Y) инвертирован относительно OpenGL. При импорте нормалей нужно либо использовать DirectX флаг при экспорте из Substance, либо включить опцию Flip Green Channel в Import Settings Unreal.
Texture Compression. Unreal сжимает текстуры в BC7 (DirectX) или ETC2 (мобайл). Albedo — Default (BC7), Normal Map — Normal Map (BC5), Metallic/Roughness/AO — Masks (BC4/BC7 без sRGB).
Material Instances — обязательная практика. Вместо дублирования Material Graph для каждого варианта — один Master Material с параметрами, к которым создаются Instances. Это снижает количество уникальных шейдеров в 3–4 раза, ускоряет загрузку на 30% и позволяет менять параметры без пересборки. Такая оптимизация шейдеров снижает draw calls и улучшает FPS. Например, мы оптимизировали проект с 200 материалов до 15 Master Materials + 200 Instances, сократив время загрузки на 40%.
Как мы настраиваем PBR-материалы: пошаговый процесс
- Аудируем исходные текстуры: проверяем битность, цветовое пространство, наличие всех карт.
- Выбираем целевой движок и рендер-пайплайн, определяем формат упаковки.
- Настраиваем экспорт из Substance Painter с нужным пресетом или пишем кастомный JSON-конфиг.
- Импортируем в движок с правильными Import Settings (sRGB/Linear).
- Собираем Master Material с параметрами, создаём Instances.
- Проверяем материал на тестовой сцене: Albedo (30–240 sRGB), Normal Map (без артефактов), Smoothness (0–1), AO (не двойное затенение), Metallic (бинарный).
Сравнение рендер-пайплайнов по параметрам PBR
| Параметр |
Unity HDRP |
Unity URP |
Unreal Engine 5 |
| Упаковка текстур |
Mask Map (RGBA) |
Раздельные с Smoothness |
ORM packed (R=AO, G=Rough, B=Met) |
| Smoothness |
Из хранящейся шероховатости |
Инверсия Roughness |
Из Roughness канала |
| Normal Map пространство |
OpenGL (стандарт) |
OpenGL |
DirectX (требует инверсии Y) |
| Сжатие Normal |
BC5 |
BC5 |
BC5 |
| Material Inheritance |
Shader Graph / Instances |
Shader Graph / Instances |
Master Material + Instances |
Что входит в настройку PBR-материалов
- Анализ исходных текстур и их пригодности под целевой движок.
- Настройка Export Preset и конвертация текстур (каналы, цветовое пространство).
- Создание Master Material с параметрами (Base Color, Normal, ORM/Mask, Emission).
- Сборка Material Instances для каждого ассета.
- Проверка на тестовой сцене с боковым светом и HDRI.
- Документирование настроек и передача в git-репозиторий проекта.
| Масштаб задачи |
Ориентировочный срок |
| Настройка одного материала |
от 0.5 дня |
| Перенос набора из 10–20 ассетов |
от 2 дней |
| Разработка Master Material + 30 Instances |
от 5 дней |
| Полный аудит материалов проекта |
по согласованию |
Сроки уточняются после анализа проекта. Закажите настройку PBR-материалов — гарантируем совместимость под ваш движок. Свяжитесь с нами для бесплатной оценки объёма работ.
Physically Based Rendering — основа современных игровых материалов. Подробнее в Wikipedia.
Текстурирование и материалы
Художник отправляет ассет в движок — и он выглядит как пластиковая игрушка. Мы это видели десятки раз: правильная геометрия, хорошая UV-развёртка, но материал «не играет». В 90% случаев причина — в непонимании PBR-каналов. За 10+ лет работы над мобильными и PC-проектами мы выработали пайплайн, который гарантирует предсказуемый результат в любом освещении. Текстурирование для современных игр — это работа с физически корректными материалами, процедурными системами и жёстким FPS-бюджетом. Наш опыт включает более 50 завершённых игровых проектов — от инди до AAA. Свяжитесь с нами — обсудим, какой пайплайн текстурирования лучше подойдёт вашему проекту с PBR-материалами для игр.
Почему PBR-материалы — стандарт для современных игр?
PBR (Physically Based Rendering) — не художественный стиль, а набор правил, при которых материал ведёт себя физически предсказуемо при любом освещении. В Unity (URP/HDRP) и Unreal это стандарт по умолчанию. Использование PBR сокращает время на переделку на 30%: материал, запечённый по правилам, не требует повторной настройки при смене окружения. В отличие от legacy-подходов, PBR даёт единообразие в команде — художник и технарь говорят на одном языке каналов. Physically Based Rendering — базовая статья на Wikipedia.
Что входит в PBR-пайплайн: Metal/Roughness vs Specular/Glossiness
Два основных workflow:
-
Metal/Roughness (используется в Unity URP, Unreal): Base Color — диффузный цвет без информации об освещении. Metallic — бинарная карта: 0 (диэлектрик) или 1 (металл). Roughness — 0 зеркальная поверхность, 1 матовая. Normal Map — симуляция рельефа. AO (Ambient Occlusion) — затемнение в углублениях.
- Specular/Glossiness — старый workflow, используется реже, в основном legacy-проектах или при конверсии из Photoshop.
Граничные значения для диэлектриков: base color не темнее #383838 и не светлее #E0E0E0 — иначе материал начинает «светиться» или «проваливаться» в темноту при HDR-освещении. Для металлов base color = цвет отражения (золото — тёплый, хром — нейтральный).
— из документации Unreal Engine: «PBR — единственный способ получить предсказуемые отражения на всех платформах».
Как Substance Designer ускоряет создание тайловых материалов?
Если Substance Painter — ручная покраска по готовой геометрии, то Substance Designer — программирование материала. Нодовый граф на выходе даёт набор текстурных карт, которые генерируются алгоритмически. Designer в 5 раз быстрее ручного текстурирования при повторном использовании: один граф с параметрами — размер камня, зазор, замшелость, влажность — даёт сотни вариаций. Вместо рисования 2K-текстуры руками художник собирает граф, который можно:
- Параметризировать — один граф «каменная кладка» с ползунками: размер камня, зазор, степень замшелости, влажность.
- Масштабировать без потери качества — рендеринг в любом разрешении (2K → 4K для cinematic).
Строительные блоки графа в Designer:
- Shape nodes — геометрические примитивы (прямоугольник, окружность, полигон). Основа для тайловых паттернов.
- Noise nodes (Perlin, Gaussian, Cells, Voronoi) — органические нерегулярности.
- Tile Generator / Splatter — ключевые ноды для создания паттернов с контролем смещения, ротации, масштаба.
- Warp nodes — деформация по карте нормалей или градиенту (потёки, сдвиги, трещины).
- Blend — смешение слоёв с маскированием (финальный compositing).
- Normal Map nodes — синтез нормалей из height-данных.
Типичный граф для материала «промышленный металл»:
[Shape: прямоугольная панель]
↓
[Tile Generator: сетка панелей с небольшим offset]
↓
[Warp: микровмятины от Gaussian noise]
↓
[Blend: добавление curvature-маски → ржавчина по рёбрам]
↓
[Blend: потёки по Directional Warp]
↓
[Export: BaseColor / Metallic / Roughness / Normal / AO]
Такой граф переиспользуется в разных проектах без переделки при смене разрешения. Один граф экономит до 40% времени на повторяющиеся текстуры.
Как избежать потери производительности при работе с текстурами?
Главная ошибка — завышенное разрешение текстур и неправильный формат сжатия. Сравнительная таблица по платформам:
| Платформа |
Максимальная текстура на hero asset |
Формат сжатия |
Размер относительно PNG |
| Mobile (mid-range) |
1K–2K |
ETC2 / ASTC |
В 4–8 раз меньше |
| PC / Console |
2K–4K |
BC1–BC7 |
В 4 раза меньше |
| VR |
1K–2K |
ASTC (обязательно) |
В 4–8 раз меньше |
Никогда не экспортировать PNG в продакшен без компрессии — это прямой расход памяти. BC7 для RGBA даёт хорошее качество при 8 bpp. ASTC для мобайла настраивается по соотношению quality/size. Дополнительная таблица сравнения инструментов:
| Инструмент |
Скорость |
Гибкость |
Переиспользуемость |
| Substance Designer |
3-5 дней на тайл |
Максимальная (параметры) |
100% для разных проектов |
| Substance Painter |
2-3 дня на hero-ассет |
Средняя (ручная дорисовка) |
~70% через Smart Materials |
| Quixel Mixer |
1-2 дня |
Ограничена библиотекой Megascans |
Зависит от проекта |
Процесс работы: от референса до интеграции
- Анализ референсов и референсной геометрии — определение PBR-каналов, стиля, ограничений платформы.
- Создание UV-развёртки и бейкинг — запечка AO, Normal, Curvature, Thickness с учётом texel density.
- Текстурирование — Painter для hero, Designer для тайлов, hand-painted если нужно.
- Экспорт и оптимизация — сжатие в целевой формат, атласирование, LOD-текстуры, тест на целевой платформе.
- Поддержка при интеграции — настройка материалов в движке, отладка при проблемах с освещением.
Чек-лист типичных ошибок
- Base Color содержит fake-тени → ломает динамическое освещение.
- Normal Map в sRGB-пространстве → инвертированные нормали.
- AO и Curvature не запечены → Smart Materials работают некорректно.
- Разрешение текстур выше необходимого → падение FPS и лишний VRAM.
- Формат сжатия выбран без учёта альфа-канала (BC1 vs BC7).
Что входит в работу и гарантии качества
- Deliverables: PBR-сеты текстур (Base Color, Metallic, Roughness, Normal, AO) под Metal/Roughness workflow, параметрический граф Substance Designer (если требуется), полная документация по настройке материалов в Unity/Unreal, поддержка при интеграции с тестированием на целевой платформе.
- Гарантия: каждый материал проверяется в движке под тремя разными условиями освещения. Наш опыт — 10+ лет, 50+ проектов, включая проекты с AR Foundation и XR Interaction Toolkit.
- Сроки: от 3 до 14 дней в зависимости от сложности (один тайловый материал в Designer — 3–5 дней, hero asset с UDIM — до 14 дней). Стоимость рассчитывается индивидуально, ориентир от 20 000 до 80 000 рублей за единицу. Пакет из 5 тайловых материалов — от 80 000 до 150 000 рублей.
Закажите текстурирование вашего ассета — мы гарантируем предсказуемый результат без переделок. Получите консультацию по подходящему пайплайну уже сегодня.