Запекание карт Ambient Occlusion для PBR-графики

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

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

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

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Запекание карт Ambient Occlusion для PBR-графики
Простой
~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

Запекание карт Ambient Occlusion для PBR-графики

AO-карта — одна из самых недооценённых в PBR pipeline. Она не задаёт цвет, не определяет металличность, не хранит рельеф поверхности. Она делает одно: добавляет затенение в труднодоступных для света местах — швах, пазах, контактных зонах. Без неё модель выглядит «пластиковой» и «плоской» даже с идеальным normal map и хорошей базовой текстурой. Мы в своей практике сталкивались с проектами, где AO игнорировали до финальных этапов, и потом приходилось перезапекать половину ассетов — теряли недели. Поэтому мы всегда включаем AO в пайплайн с самого начала.

В Substance Painter AO используется как маска для процедурных эффектов: грязь и износ аккумулируются в углублениях, металл блестит на выступах. Без качественной AO-карты эти процедурные маски работают по геометрии low-poly и дают грубый, неправдоподобный результат.

Почему автоматическое запекание AO часто ошибается?

В большинстве инструментов AO запекается одной кнопкой с настройками по умолчанию. Результат — технически корректный, но практически неудобный. Вот три конкретных проблемы:

Ray Distance. Параметр, определяющий на какое расстояние baker cast лучи при проверке перекрытия. Слишком большое значение — AO затрагивает области, которые не должны быть затенены (например, разные части персонажа затеняют друг друга в T-pose). Слишком маленькое — AO получается поверхностным, не проникает в глубокие пазы. Правильное значение Ray Distance подбирается индивидуально под каждый ассет в зависимости от его габаритов.

Ignore Backfaces. По умолчанию выключено в большинстве инструментов. Если оставить выключенным, back faces внутренних поверхностей (полости, трубки, детали с holes) cast тени на внешние поверхности. Для game models — почти всегда нужно включать. Для cinematic и architectural рендера — зависит от того, видны ли внутренние поверхности.

Self-shadow vs. Ground shadow. В Marmoset Toolbag можно разделить: AO от самого объекта и AO от окружения (floor contact shadow). Для weapon на белом фоне нужен только self-shadow. Для prop, который будет стоять на поверхности, полезен и ground shadow — но только если он будет статичным в сцене. Динамические объекты с запечённым ground shadow выглядят неправдоподобно при перемещении.

Как правильно настроить запекание AO в разных инструментах?

Marmoset Toolbag 4. В секции Bake → Maps → Occlusion: Ray Count 512–2048 (512 достаточно для production, 2048 для кинематики), Ray Distance — подбирается вручную. Floor включать только для статичных объектов. Ignore Backfaces — включить. Jitter — включить для уменьшения banding на плоских поверхностях.

xNormal. AO через Ambient Occlusion map: Number of Rays 256–512, Spread Angle 162 (стандарт), Bias 0.01–0.08 (чем больше bias, тем меньше darkening в tight углах — подбирается под визуальный результат). Distribution: Cosine даёт более реалистичный результат чем Uniform.

Substance Painter. При bake в SP: Max Frontal Distance и Max Rear Distance настраиваются так же как для normal map. Ambient Occlusion в SP использует тот же cage что и normal map — важно убедиться что настройки cage одинаковы для обоих. Иначе AO и normal map будут несогласованы.

Важный нюанс для Substance Painter: AO-карта, запечённая в SP, используется как reference для генератора AO в слоях. Если она некачественная — все слои с AO-маской (Generator → Dirt, Wear, Cavity) будут давать неправдоподобные результаты.

Инструмент Ray Count Ray Distance Ignore Backfaces Ground Shadow
Marmoset Toolbag 4 512-2048 Вручную Рекомендуется Только статика
xNormal 256-512 Bias 0.01-0.08 Автоматически Нет
Substance Painter Как cage Через Max Frontal Совпадает с normal Опционально

Комбинирование AO с другими картами

В современном PBR workflow AO редко используется как отдельная карта — чаще она пакуется в channel других текстур. Типичные варианты:

  • ORM (Occlusion/Roughness/Metallic): R канал = AO, G = Roughness, B = Metallic. Это стандарт Unreal Engine для packed textures.
  • RGBA в BaseColor: иногда A канал BaseColor используется для AO multiplier, хотя это менее распространено.
  • Отдельная карта: для Substance Painter workflow, где AO используется как маска, или для ручного compositing в движке.

При работе с ORM важно, чтобы AO была запечена с правильным bit depth: 8-bit достаточно для большинства game ассетов, 16-bit — для cinematic и archviz где нужны плавные градиенты.

Типичные ошибки при постановке задачи

Не указан контекст использования. AO для Substance Painter workflow (маска для генераторов) требует одних настроек, AO для packed ORM в движке — других. «Просто запеки AO» — не ТЗ.

Нет информации о статичности объекта. Floor / ground contact shadow запекать только для объектов, которые не двигаются.

Ожидание «убрать все тёмные пятна». AO по определению затемняет углублённые зоны. Если клиент хочет «светлую» AO — это не про отсутствие затенения, а про правильный Ray Distance и Spread Angle. Обсуждаем до начала работы.

Для моделей с флоатинг деталями (ремень, патроны) используйте отдельные cage или увеличивайте Bias до 0.12. При UDIM раскладке — запекайте на тайл с отступом 2-4 пикселя, чтобы избежать артефактов на швах.

Отметим: как отмечает официальная документация Allegorithmic, AO-карта должна быть согласована с контекстом использования. Подробнее о технологии Ambient Occlusion.

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

  1. Консультация по настройкам запекания под ваш движок (Unreal, Unity, Godot).
  2. Запекание AO + Normal + Curvature (опционально Thickness).
  3. Проверка в трех вьюпортах (Marmoset, движок, SP).
  4. 2 итерации правок по вашему фидбеку.
  5. Финальные текстуры в выбранном формате (TGA, PNG, EXR).

Закажите запекание карт под ключ: мы оценим ваш проект за 24 часа, дадим рекомендации по оптимизации UV и cage. Обращайтесь — входим в бюджет благодаря опыту: более 8 лет в геймдеве, 500+ готовых ассетов. Вы сэкономите до 30% бюджета по сравнению с самостоятельным запеканием.

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

Ассет Сроки
Простой проп (1–3 материала) 1–4 часа
Weapon / equipment 2–6 часов
Персонаж (один UV tile) 4–8 часов
Сложный ассет с флоатинг деталями 6–12 часов
UDIM персонаж (4–6 тайлов) 1–3 дня

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

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.