Запекание карт нормалей и текстурных карт графики
Запекание — это перевод геометрической информации high-poly модели в текстурные данные. Разница между «просто запечь» и «запечь правильно» — это разница между артефактами на каждой жёсткой грани и чистой картой, которая работает при любом освещении.
Процесс кажется простым: загрузи high-poly и low-poly, нажми Bake в Marmoset Toolbag, получи карту. На практике 30% времени уходит на настройку, 40% — на исправление артефактов, и только 30% — на сам bake.
Какие артефакты возникают и почему
Shadowing artifacts на hard edges. Классика: normal map выглядит нормально при прямом освещении, но при боковом свете на гранях появляются тёмные полосы. Причина — несовпадение smoothing groups на low-poly и граничных seam-ов UV. Правило, которое исправляет это в 90% случаев: seam UV должен совпадать с hard edge (smoothing group break). Это называется matched UV/smoothing workflow и это не опция, а обязательное условие для корректного bake.
Projection artifacts. При несовпадении объёмов high-poly и low-poly baker пытается найти ближайшую поверхность через ray casting и промахивается — особенно на сложных вогнутых формах и тонких элементах. В Marmoset Toolbag это решается через группы запекания (Bake Groups): каждая деталь с большим расхождением объёмов выделяется в отдельную группу с индивидуальным cage.
Seam-ы на normal map. Видимые разрывы по границам UV islands. Причина — недостаточный padding (2px вместо необходимых 8px) или floating geometry, которую baker интерпретирует неоднозначно. В xNormal эта проблема решается через Edge Padding post-process. В Marmoset Toolbag — через Dilation настройку в Output параметрах.
Tangent space несовпадение. Normal map запечена в одном tangent space, движок использует другой — результат: некорректное освещение, блики не там где нужно. Unity использует MikkTSpace, Unreal Engine — тоже MikkTSpace, но с нюансами в UE4 vs UE5. Marmoset Toolbag и Substance Painter поддерживают настройку tangent basis — её нужно выставить в соответствии с целевым движком до запекания.
Полный стек и настройки
Marmoset Toolbag 4 — основной инструмент для bake. Причина: Bake Groups с per-group cage, поддержка UDIM, правильный tangent basis для большинства движков, удобный preview в реальном времени. Настройки: Samples 256–512 для финального bake, Dilation 32px для 4096 текстур, Cage Offset индивидуально под каждую группу.
xNormal — используется для сложных случаев с custom cage и для пакетного запекания большого количества объектов. Быстрее Toolbag на больших сценах, но preview слабее.
Substance Painter — когда bake и текстурирование идут в одном инструменте. Match by Mesh Name workflow: low-poly называется Object_low, high-poly — Object_high. Painter автоматически матчит пары и запекает отдельно. Это критично для сложных ассетов с десятками деталей.
Карты, которые запекаем стандартно: Normal Map (tangent space), Ambient Occlusion, Curvature, Position, Thickness, World Space Normal. Последние три нужны для процедурных масок в Substance Painter. AO запекается с настройкой Ray Distance и Ignore Backfaces — без этого кавернатные детали дают неправильные тени.
Для персонажей с UDIM workflow запекание делается per-tile: каждый тайл (1001, 1002, 1003...) запекается с учётом своей геометрии. Marmoset Toolbag 4 поддерживает UDIM bake нативно — это одна из причин, почему он стал стандартом в character pipeline.
Процесс работы
На входе нужны: high-poly mesh (FBX/OBJ), low-poly mesh с готовым UV, информация о целевом движке (для tangent basis), размер текстурного атласа.
Проверка пары HP/LP. Смотрим соответствие объёмов, выявляем проблемные зоны — тонкие детали, острые углы, вогнутые формы.
Настройка bake groups. Разбиваем модель на группы по типу поверхности и сложности геометрии. Флоатинг геометрия (клёпки, накладки, детали) — в отдельные группы.
Тестовый bake. На уменьшенном разрешении (512 или 1024) проверяем все критичные зоны. Исправляем smoothing groups, перемещаем seam-ы, правим cage.
Финальный bake. Полное разрешение, максимальный sampling. Постпроцессинг: edge dilation, фильтрация.
QA в движке. Карты проверяются в целевом движке или в Marmoset Viewer под несколькими вариантами освещения — ключевой, боковой, backlight.
Ориентиры по срокам
| Тип ассета | Количество карт | Сроки |
|---|---|---|
| Простой проп | Normal + AO | 4–8 часов |
| Оружие / экипировка | Full PBR set | 1–2 дня |
| Персонаж (один UV tile) | Full PBR set | 2–4 дня |
| Персонаж UDIM (4–6 тайлов) | Full PBR set | 3–6 дней |
Стоимость рассчитывается после анализа исходников.





