Создание карт кривизны (Curvature) и толщины (Thickness)
Мы не раз сталкивались с ситуацией, когда Curvature и Thickness оказываются «мусором» — шум на плоских гранях, артефакты на скруглениях, неверный bias в зонах контакта. А ведь именно эти карты отвечают за тот живой материал, который отличает AAA-арт от технически грамотного, но плоского ассета. Проблема не в инструменте — Baker в Marmoset Toolbag или Substance Painter справляется за секунды. Проблема в настройках и подготовке геометрии. Оптимизация этого этапа может сократить бюджет на текстуры до 30%.
Почему Curvature Map получается с артефактами?
Самая частая ситуация: художник запекает Curvature в Marmoset Toolbag 4 с настройками по умолчанию и получает карту, где все острые углы выглядят правильно, но на плоских гранях — белый шум. Причина — параметр Ray Distance выставлен слишком высоко: лучи задевают соседние острова UV и дают ложные выпуклости.
Исправляем снижением Ray Distance до значений, при которых луч едва достигает high-poly. Для персонажного меша с разбивкой на Baker Groups — отдельный cage для каждой группы. В Substance Painter та же проблема решается через bake per material с явно заданным Max Frontal Distance. В 95% случаев это убирает шум без перезапекания.
Второй источник боли — seam bleeding. Если UV-развёртка сделана без отступа 2–4 пикселя по краям каждого острова, кривизна с соседних островов затекает в шов. На 2K-текстуре для мобильного ассета это заметно сразу; на 4K для PC — при определённом угле камеры. Проверяем развёртку перед запеканием — это экономит часы переделок.
Что такое Thickness Map и зачем она нужна?
Thickness Map запекается через AO с инвертированными нормалями: лучи уходят внутрь меша и фиксируют расстояние до противоположной стенки. Для тонких деталей — ушей персонажа, лепестков, краёв накидки — эта карта даёт Subsurface Scattering корректный ввод. Без неё SSS работает равномерно, и ткань выглядит как пластик. В наших проектах мы используем 16-bit Thickness, чтобы избежать banding на плавных переходах.
Инструменты и подход к запеканию
Для производственного пайплайна используем три варианта в зависимости от задачи:
| Инструмент | Когда использовать | Ключевые настройки |
|---|---|---|
| Marmoset Toolbag 4 | Полный контроль над cage и Baker Groups | Curvature Intensity, Curvature Bias, Smooth Angle (90° для hard-surface, 160–180° для органики) |
| Substance Painter 9 | Быстрое запекание внутри рабочего слоя | bake per material, Max Frontal Distance, Padding 4px |
| Blender + BakeMaster | Инди-проекты, отсутствие лицензий | Geometry Node → Pointiness → Color Ramp; Thickness через AO с Local Space |
Marmoset — предпочтительный вариант, когда нужен точный контроль. Substance Painter генерирует Curvature из нормальной карты, что быстрее, но менее точно на low-poly с острыми углами без сглаживания. Blender — бюджетный вход, но требует кастомного нодграфа в Cycles.
Независимо от инструмента, перед запеканием меш должен пройти несколько проверок:
- Нормали high-poly усреднены корректно — без перевёрнутых фейсов.
- Smooth Groups на low-poly совпадают с UV-швами.
- Cage не пересекает сам себя в зонах вогнутостей.
- UV-острова имеют одинаковый texel density по всему ассету.
Чек-лист проверки перед запеканием
- [ ] Проверить нормали high-poly на inverted faces - [ ] Совместить Smooth Groups с UV seams - [ ] Настроить Cage с отступом 0.1–0.5% от размера меша - [ ] Установить Padding 2–4 пикселя на UV-островах - [ ] Убедиться, что нет пересекающихся геометрий внутри одной Baker GroupКак Curvature используется в материале
Запечённая Curvature Map в чистом виде — промежуточный результат. В Substance Painter она подаётся в Generator Metal Edge Wear как маска для edge highlighting. В ShaderGraph Unity её используют как вход для lerp между двумя материалами: на выпуклостях металл стёрт до блеска, во впадинах — накопилась грязь.
Правильный workflow: Curvature → Color Ramp (настроить конкретные диапазоны) → маска на слой. Без Color Ramp карта даёт слишком широкую маску, и эффект выглядит размыто. Для Thickness — подключение к параметру Thickness в Lit Shader с включённым Subsurface Scattering. В URP/HDRP это Subsurface Mask Map в канале A. В кастомном шейдере — отдельная текстура, семплируемая в фрагментном шейдере для расчёта глубины рассеивания.
Типичные ошибки, которые дорого обходятся
- Запекание без Baker Groups. Если у персонажа рука перекрывает торс при позе A-Pose, Marmoset запечёт кривизну торса с учётом тени от руки. Разделение на группы решает это — каждая часть тела запекается изолированно. Экономия на этом этапе приводит к артефактам, которые исправляются заново за час-два.
- Curvature с неправильным Smooth Angle. Значение 90° подходит для hard-surface. Для органики — 160–180°, иначе все мышечные переходы выглядят как граффити из белых пятен.
- Thickness на открытой геометрии. Если меш не замкнут (открытый цилиндр, например), лучи уходят в бесконечность и возвращают 0. Нужно либо закрыть геометрию временными заглушками, либо ограничить Ray Distance до предполагаемой максимальной толщины объекта.
- Использование 8-bit для Curvature. Карта кривизны — градиентные данные. На 8-bit появляется banding на плавных переходах. Для финального материала Curvature хранят в 16-bit, конвертируя в 8-bit только при необходимости экономии памяти на мобильных платформах. Стоимость ошибки — переделка всех слоёв, что может увеличить бюджет на 20%.
Что входит в работу
- Аудит меша: проверка UV, Baker Groups, Smooth Groups, нормалей.
- Настройка параметров запекания в зависимости от движка (Unity, Unreal, custom).
- Запекание Curvature и Thickness в 16-bit с кастомным Color Ramp.
- Проверка на тестовом материале: Curvature подаётся напрямую как Albedo — это выявляет артефакты до наложения слоёв.
- Передача исходников: .tga/.png/.exr, сцены запекания (.tbscene, .spp, .blend).
- Обучение команды: как правильно включать карты в пайплайн материалов.
Если вы хотите гарантированно получить чистые карты без артефактов, закажите аудит меша — это сэкономит часы переделок.
Процесс работы над картами
На практике запекание Curvature и Thickness занимает небольшую часть от общего времени, но ошибка здесь тянет за собой переделку нескольких слоёв материала. Поэтому начинаем с аудита меша: проверяем UV-острова, Baker Groups, правильность Smooth Groups. Наша команда имеет опыт более 5 лет в области запекания текстур и реализовала 150+ проектов для игровой индустрии — от мобильных до AAA.
| Масштаб задачи | Ориентировочный срок |
|---|---|
| Один hero-ассет, до 5 UV-сетов | от 4 до 8 часов |
| Персонаж с полным набором LOD | от 1 до 2 дней |
| Окружение (пропсы + модульные тайлы) | от 3 до 7 дней |
| Запекание для существующего пайплайна (интеграция в команду) | по согласованию |
После запекания — проверка на тестовой сфере со стандартным материалом, где Curvature подаётся напрямую как Albedo. Быстрый способ увидеть все артефакты до того, как они спрятались под слоями грязи и царапин.
Стоимость определяется после просмотра меша и технического задания — количество UV-сетов, целевое разрешение текстур и требования к движку влияют на трудозатраты напрямую. Получите консультацию инженера по настройке пайплайна запекания вашего проекта. Мы гарантируем чистые карты без артефактов и полную поддержку на этапе интеграции.
Marmoset Toolbag Documentation рекомендует для Curvature использовать значение Smooth Angle 90° для hard-surface, но мы на практике часто поднимаем до 120° для лучшего контроля острых углов. Подробнее о физике Subsurface Scattering можно прочитать в Wikipedia.






