Запекание карт нормалей (Normal Map) для моделей игр

Правильно запеченная карта нормалей делает low-poly модель с 3000 полигонов неотличимой от миллионного high-poly оригинала. Плохая нормал-карта — это тёмные полосы на гранях, швы на UV-границах и «плоские» поверхности под боковым светом. Технически [Normal map](https://en.wikipedia.org/wiki/Normal_m

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

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

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
    658
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    739
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    142

Правильно запеченная карта нормалей делает low-poly модель с 3000 полигонов неотличимой от миллионного high-poly оригинала. Плохая нормал-карта — это тёмные полосы на гранях, швы на UV-границах и «плоские» поверхности под боковым светом. Технически Normal map запекается за минуты. Запекается правильно — это уже вопрос знания конкретных настроек, понимания tangent space и умения предвидеть артефакты до их появления. Мы занимаемся геймдев-пайплайном более 5 лет, запекали ассеты для 15+ игр, включая мобильные и PC проекты. Наша экспертиза позволяет гарантировать чистый результат, который пройдёт QA в любом движке.

Почему возникают артефакты на нормал-картах?

Tangent space mismatch — запекание карт нормалей

Это, пожалуй, самая неочевидная причина «правильной» нормал-карты, которая выглядит неправильно в движке. Marmoset Toolbag, xNormal, Substance Painter и каждый движок используют свои конвенции tangent space. Unity (Standard и URP/HDRP) — MikkTSpace. Unreal Engine — тоже MikkTSpace, но с особенностями обработки hard edges в UE4 vs UE5. Godot — MikkTSpace. Если карта запечена в одном tangent space и импортирована в движок с другим, получим некорректное освещение: вместо рельефа — странные блики не в тех местах.

Решение: в Marmoset Toolbag 4 выставляем Tangent Space → MikkTSpace. В Substance Painter это настройка при импорте меша (Compute Tangent Space Per Fragment). Проверяем результат в самом движке, не только в preview инструмента.

Hard edge + UV seam несовпадение

Стандартная геометрия hard-surface имеет hard edges (smoothing group breaks) на конструктивных рёбрах. Если UV seam не совпадает с этими рёбрами, baker будет интерполировать нормали через seam — результат: тёмная или светлая полоса вдоль ребра. Правило одно: каждый hard edge должен быть UV seam, каждый UV seam на hard-surface — hard edge. Это не рекомендация, это обязательное условие.

В Blender это делается через Edge → Mark Sharp + Mark Seam на одних и тех же рёбрах. В Maya — через Mesh Display → Soften/Harden Edge и UV Seam на совпадающих рёбрах. В 3ds Max — Smoothing Groups + UV seam по той же логике.

Cage и projection misses

Для сложной геометрии с вогнутыми формами, флоатинг деталями или с большим расхождением между HP и LP в Marmoset Toolbag необходимо работать с Bake Groups. Каждая флоатинг деталь — отдельная группа с индивидуальным cage offset. Без этого baker cast лучи через неправильную геометрию и получает чёрные пятна или инвертированные нормали в зонах пересечения.

Как правильно настроить запекание в Marmoset Toolbag 4?

Marmoset Toolbag 4 — основной инструмент для production bake. Настройки для финального запекания:

  • Samples: 512 для 4096 карт, 256 для 2048. Ниже — noise на сложных переходах.
  • Dilation: 32px для 4096, 16px для 2048. Критично для mip-map bleeding.
  • Tangent Space: MikkTSpace (для большинства движков).
  • Max Frontal / Rear Distance: индивидуально под каждый ассет. Слишком большой rear distance — baker захватывает geometry с обратной стороны. Слишком маленький — misses на деталях с большим offset от LP.

Для флоатинг geometry: отдельный Bake Group для каждой группы флоатинга. Max Frontal Distance = чуть больше расстояния от LP поверхности до дальней точки флоатинг объекта. Rear Distance = минимальный.

В xNormal используем тот же подход, но через .hnmap файл настроек cage для каждого ассета. xNormal быстрее на больших сценах и полезен для batch bake когда нужно запечь 50+ объектов одновременно.

Сравнение инструментов запекания:

Инструмент Скорость Tangent Space Особенности
Marmoset Toolbag 4 Высокая MikkTSpace Лучший preview, поддержка cages
xNormal Очень высокая Standard (настраиваемый) Лучший batch bake, открытый исходный код
Substance Painter Средняя Per Fragment Интеграция с текстурированием

Как проверить нормал-карту перед передачей?

Запечённую карту обязательно проверяем в движке — не только в Marmoset. Причина: preview в Toolbag использует собственный PBR рендер, который может маскировать проблемы, незаметные при стандартном освещении в движке.

Пример артефакта: полоса на hard edgeЕсли hard edge и UV seam не совпадают, на ребре появляется тёмная или светлая полоса. Это проверяется при grazing angle освещении в движке.

Чеклист проверки:

  • Освещение с трёх сторон: ключевой, боковой, backlight
  • Extreme angles: камера почти параллельно поверхности (grazing angle)
  • Проверка граней: нет ли тёмных полос вдоль hard edges
  • Проверка seam-ов: нет ли видимых швов по UV boundary

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

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

  • Консультация по подготовке high-poly и low-poly геометрии
  • Настройка bake-проекта в Marmoset Toolbag 4 / xNormal в зависимости от задачи
  • Запекание всех необходимых карт: Normal, Ambient Occlusion, Cavity, Curvature, Thickness, World Space Normal
  • QA в целевом движке (Unity, Unreal, Godot)
  • Передача исходников (.fbx, .tga, project files)
  • Корректировка UV при необходимости

Ориентиры по срокам

Ассет Карты Сроки
Простой проп (оружие, инструмент) Normal + AO 2–6 часов
Среднесложный объект (техника, детали) Full PBR 4–10 часов
Персонаж (один UV tile) Full PBR 1–3 дня
Сложный ассет с флоатингом Full PBR 2–4 дня
UDIM персонаж (4–6 тайлов) Full PBR per tile 3–6 дней

Стоимость рассчитывается индивидуально. На входе нужны: high-poly (FBX/OBJ), low-poly с готовым UV, информация о целевом движке.

Свяжитесь с нами, чтобы обсудить ваш проект и получить консультацию по пайплайну. Закажите оценку вашего ассета по референсам — это займёт один день.