Создание карт кривизны (Curvature) и толщины (Thickness)

Создание карт кривизны (Curvature) и толщины (Thickness) Мы не раз сталкивались с ситуацией, когда Curvature и Thickness оказываются «мусором» — шум на плоских гранях, артефакты на скруглениях, неверный bias в зонах контакта. А ведь именно эти карты отвечают за тот живой материал, который отличае

Наши компетенции

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

Понятные ролики для обучения сотрудников и клиентов

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    142

Создание карт кривизны (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%.

Что входит в работу

  1. Аудит меша: проверка UV, Baker Groups, Smooth Groups, нормалей.
  2. Настройка параметров запекания в зависимости от движка (Unity, Unreal, custom).
  3. Запекание Curvature и Thickness в 16-bit с кастомным Color Ramp.
  4. Проверка на тестовом материале: Curvature подаётся напрямую как Albedo — это выявляет артефакты до наложения слоёв.
  5. Передача исходников: .tga/.png/.exr, сцены запекания (.tbscene, .spp, .blend).
  6. Обучение команды: как правильно включать карты в пайплайн материалов.

Если вы хотите гарантированно получить чистые карты без артефактов, закажите аудит меша — это сэкономит часы переделок.

Процесс работы над картами

На практике запекание 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.