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

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Запекание карт нормалей (Normal Map) для моделей игр
Средний
~1 день
Часто задаваемые вопросы

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

Какие этапы разработки игры?

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

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

Правильно запеченная карта нормалей делает 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, информация о целевом движке.

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

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

Представьте: художник сдаёт персонажа с 120 000 полигонов, мотивируя это тем, что «так выглядит лучше». На мобильном устройстве сцена из десяти таких персонажей уронит FPS до неиграбельных значений. Мы в студии GameArt ежедневно решаем такие проблемы: наши модели проходят строгий полигональный контроль и оптимизацию под целевую платформу. За 7 лет мы выпустили более 50 игровых проектов — от мобильных гиперказуалок до PC-экшенов. Гарантируем, что каждая модель впишется в технические требования без потери визуального качества.

3D-моделирование для игр — это не просто «сделать красиво». Это расстановка приоритетов в ограниченном бюджете треугольников и draw calls. Каждый этап пайплайна влияет на производительность в рантайме. Пропуск ретопологии или кривые UV оборачиваются переделками на этапе интеграции — мы это исключаем на старте.

В этой статье разберём ключевые аспекты: от high-poly скульпта до финальной сборки в Unity или Unreal Engine, с акцентом на практические кейсы. Мы проектируем модели под конкретную платформу: для мобильных используем низкую тексельную плотность (512 px/м), для PC — до 2048 px/м. Все решения принимаются на основе бенчмарков движка и профилирования на реальном железе.

Общий пайплайн

Стандартный пайплайн выглядит так:

  1. Концепт / референсы — прежде чем открывать ZBrush, нужно понимать силуэт, читаемость и целевую платформу.
  2. High-poly sculpt — детальная скульптурная модель без ограничений по полигонам. Делается в ZBrush или Blender (Sculpt Mode).
  3. Low-poly retopology — чистая игровая сетка поверх high-poly, вручную или полуавтоматически.
  4. UV-развёртка — подготовка координат для текстур.
  5. Baking — перенос детализации с high-poly на карты (normal map, AO, curvature и т.д.).
  6. Передача в движок — импорт в Unity или Unreal с настройкой LOD-цепочки.

Каждый этап влияет на следующий. Плохая ретопология сломает скиннинг. Криво нарезанные UV дадут артефакты при запекании. Этапы нельзя менять местами.

Как распределяются полигоны для разных платформ?

Этот аспект чаще всего игнорируется на старте проекта — и именно он потом стоит переделок.

Мобильные платформы (iOS / Android)

Мобайл — самая жёсткая среда. Ориентиры для персонажей:

Тип персонажа Полигоны (триангулированные)
Главный герой (крупный план) 3 000 – 8 000
NPC второго плана 1 000 – 3 000
Массовка, враги вдали 300 – 800

Для окружения (один пропс):

Объект Полигоны
Крупный интерактивный (сундук, дверь) 500 – 1 500
Средний декоративный 100 – 400
Мелкий (камень, ветка) 20 – 80

Критичнее самого полигонажа — количество draw calls и батчинг. Модель на 200 треугольников с отдельным материалом может быть дороже модели на 2 000 треугольников, которая батчится со всей сценой. Правильный батчинг (SRP Batcher, GPU instancing) снижает draw calls до 40% — это даёт запас для более детализированных ассетов.

PC / Console

Здесь бюджеты мягче, но не безграничны:

  • Главный персонаж в шутере от первого лица: 15 000 – 60 000 полигонов (модель противника, которую игрок видит постоянно).
  • Персонаж в RPG от третьего лица: 8 000 – 25 000.
  • Транспортное средство в гонке: 30 000 – 80 000 (много мелких деталей, LOD обязателен).

Ключевой инструмент — LOD (Level of Detail). В Unity это LOD Group, в Unreal — автоматический HLOD + ручные LOD-уровни в Static Mesh Editor. Правило: LOD0 → LOD1 должен терять ~50-60% полигонов, LOD1 → LOD2 ещё ~50%. Дополнительно настраиваем occlusion culling и кластерный рендеринг, чтобы снизить нагрузку на GPU.

VR

VR — отдельная история. Рендер идёт для двух глаз, целевой фреймрейт 90 fps (Quest) или 120 fps (PSVR2). Любой фризен ощущается физически — у игрока кружится голова.

Бюджет персонажа в VR: 4 000 – 12 000 (зависит от количества NPC в сцене одновременно). Окружение агрессивно оптимизируется: портальная система, occluder culling, кластерный рендеринг — без этого сцена не потянет нужный fps. Мы используем Frame Debugger и Render Doc для профилирования на целевом устройстве на ранних этапах.

Почему ретопология — художественная задача?

Ретопология — создание чистой полигональной сетки поверх sculpt-модели. Многие воспринимают её как скучный технический этап, который можно ускорить авторетопологией (ZRemesher, Instant Meshes, функция Auto Retopology в Maya). Это ошибка.

Авторетопология даёт плохой результат в трёх ключевых зонах:

  1. Суставы — колени, локти, запястья. Там нужны ровные кольца эджлупов, перпендикулярные оси вращения. Авторетопология ломает их хаотичными диагоналями, и при анимации сустав схлопывается некрасиво.
  2. Лицо — вокруг рта и глаз нужны concentric loops, которые следуют мышечной структуре. Это обязательное условие для корректной мимической анимации через blend shapes / morph targets.
  3. Силуэтные рёбра — плечи, грудь, крупные формы. Здесь нужно сознательно распределить полигоны так, чтобы силуэт читался даже на LOD2.

Инструментарий для ручной ретопологии включает Maya (Quad Draw), Blender (BSurfaces + Shrinkwrap), 3ds Max (Graphite Modeling Tools) и ZBrush (ZRemesher с guide curves). Плотность сетки распределяется неравномерно: лицо и кисти — больше полигонов, спина и низ ног — меньше. Это не произвол, а следствие того, где камера проводит больше времени.

Как UV-развёртка влияет на качество текстур?

UV — ещё один этап, который часто недооценивают. Текселная плотность (texel density) должна быть одинаковой по всему персонажу. Если у сапога плотность в два раза выше, чем у лица — текстура будет выглядеть непоследовательно. В Maya для этого есть UV Toolkit с нормализацией, в Blender — аддон TexTools.

UDIM (U-Dimension) — технология, при которой несколько UV-тайлов объединяются в один объект. Это позволяет использовать текстуры 4K–8K без ограничений одного UV-пространства. Применяется для персонажей с высокими требованиями к детализации — cinematic-игры, hero assets. В pipeline это означает Substance Painter с UDIM-режимом и отдельный экспорт каждого тайла.

Запекание (baking) — перенос деталей высокополигональной модели на карты для low-poly. Инструменты:

  • Marmoset Toolbag — отраслевой стандарт, cage-based baking с тонкой настройкой. Удобная визуализация ошибок. При правильном cage результат чистый с первого раза.
  • xNormal — бесплатный, проверенный временем. Менее удобный интерфейс, но стабильный результат и батч-запекание.
  • Substance Painter — встроенный baker для быстрого результата внутри текстурирования, менее гибкий, чем Marmoset.
  • Blender — Cycles baker. Медленнее и требует настройки, но бесплатен.

Типичный набор запекаемых карт: Normal Map, Ambient Occlusion, Curvature, Thickness, Position, World Space Normal. Curvature и Thickness — генераторные маски в Substance Painter, автоматически выделяющие выпуклости и вогнутости для процедурного текстурирования. Согласно Marmoset Toolbag documentation, batch-baking на нескольких объектах экономит до 30% времени.

Что входит в 3D-моделирование для игр?

Этап Детали Формат сдачи
High-poly sculpt Создание детализированной скульптуры в ZBrush / Blender .zpr / .blend, скриншоты
Ручная ретопология Чистая low-poly сетка с правильными эджлупами для анимации .fbx / .ma
UV-развёртка Нормализованная тексельная плотность, опционально UDIM .fbx с UV-set
Запекание Normal, AO, Curvature, Thickness (Marmoset / xNormal) texture set (PNG/TGA)
LOD-цепочка LOD0–LOD3 с порогами по полигонам и расстоянию .fbx для каждого LOD
Интеграция Импорт в Unity / Unreal, проверка материалов и батчинга .unitypackage / .uasset
Документация Именование ассетов, иерархия, требования к трианглам PDF / Notion

Дополнительно предоставляем часовую сессию поддержки после сдачи — помогаем с настройкой LoD Group, коллизиями и анимацией. Исходные файлы (.zpr, .blend, .ma, .fbx) передаются в полном объёме.

Типичные ошибки при UV-развёртке, которые мы предотвращаем
  • Разные тексельные плотности на соседних частях модели — текстура выглядит неконсистентно.
  • Перекрывающиеся UV (overlap) — артефакты запекания.
  • Недостаточный padding между островами — размытие текстур при мип-маппинге.
  • Отсутствие UDIM для сложных персонажей — потеря детализации.

Свяжитесь с нами, чтобы обсудить ваш проект. Мы оценим сроки и подготовим коммерческое предложение под ваши требования — от мобильных гиперказуалок до PC-экшенов и VR.