Запекание карт освещения (Lightmaps) для графики

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

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

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

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Запекание карт освещения (Lightmaps) для графики
Средний
от 4 часов до 3 дней
Часто задаваемые вопросы

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

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

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

  • 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

Запекание карт освещения (Lightmaps) для графики

Lightmap-запекание — это технология, которую принято считать «устаревшей» на фоне Lumen и real-time GI. На практике она остаётся основным способом получить качественное, производительное освещение на мобильных платформах и бюджетных PC. Даже в Unreal Engine 5-проектах многие студии используют baked lighting для статичных интерьеров, потому что Lumen при всех преимуществах не даёт той же чёткости теней и той же производительности на слабом железе.

Мы, как команда геймдев-инженеров с 10-летним опытом, гарантируем, что качество запечённого освещения — это всегда результат тонкой настройки десятка параметров. Большинство проблем с «плохими» lightmaps — следствие неправильно выставленных именно этих параметров. Закажите аудит вашего проекта — мы выявим узкие места и предложим решение.

Почему UV2 и texel density — главная причина артефактов?

Lightmap в Unity или Unreal запекается в отдельный UV-канал — UV2 (или Lightmap UV в Unreal). Это не та развёртка, что используется для albedo. Lightmap UV имеет жёсткие требования:

  • Никаких перекрытий (overlapping): каждый треугольник меша — на своём уникальном месте в UV2
  • Минимальный отступ между островами (padding): не менее 2 texels при целевом разрешении lightmap. Если lightmap 512px и padding 2px — это ~0.4% от текстуры на каждый шов. При 2048px — 0.1%. Недостаточный padding = bleeding светлых зон в тёмные через смежные острова UV
  • Все острова должны быть развёрнуты без зеркальных отражений (no mirrored UVs): зеркалирование даёт корректный albedo, но в lightmap вызывает двойное освещение на симметричных частях

Unity автоматически генерирует Lightmap UV при импорте (Generate Lightmap UVs в Import Settings). Для простой геометрии это работает. Для сложных мешей с острыми углами или тонкими деталями — автогенерация создаёт некорректные острова, которые при запекании дают видимые seams на lightmap. В таких случаях UV2 делается вручную в DCC-инструменте (Blender, Maya, 3ds Max) и импортируется уже готовым.

Texel density в Lightmap UV — это сколько пикселей lightmap приходится на единицу площади поверхности. Для больших плоских поверхностей (пол, стены) — нужен больший участок в UV2. Для мелких деталей (плинтус, дверная ручка) — меньший. Unity и Unreal позволяют контролировать это через Scale in Lightmap (Unity) и Lightmap Resolution Scale (Unreal) на каждом объекте отдельно. Одинаковый Scale для всех объектов сцены — типичная ошибка: мелкие объекты получают избыточное разрешение, крупные — недостаточное.

Как правильно настроить Progressive Lightmapper?

В Unity главный инструмент для запекания — Progressive Lightmapper (с версии 2018.3 LTS, GPU-ускоренная версия появилась позже). Согласно документации Unity, основные параметры, влияющие на результат:

Indirect Bounces. Количество переотражений света. При Bounces=0 — только прямое освещение, без GI. При Bounces=2 — свет отражается от поверхностей дважды, заполняя тени мягким ambient. Для тёмных помещений Bounces=2–3 — минимум для достоверного вида. Для ярких outdoor часто достаточно 1–2.

Indirect Intensity и Albedo Boost. Indirect Intensity масштабирует яркость GI глобально. Albedo Boost усиливает влияние цвета поверхностей на переотражённый свет — при значении 1.0 поверхность с ярко-красным albedo создаёт красноватый ambient на соседних поверхностях (colour bleeding). При Albedo Boost > 1 эффект усиливается, при < 1 — цвета поверхностей меньше влияют на GI. Для реалистичного рендера Albedo Boost = 1, для менее «грязного» ambient — 0.5–0.8.

Prioritize View и Progressive Updates. При запекании Progressive Lightmapper начинает с пикселей, видимых в Scene View — это удобно для итеративной работы, но при финальном запекании лучше отключить для равномерного качества по всей сцене.

Типичная проблема на крупных сценах — light leaking: свет проникает сквозь тонкие стены. Причина — shadow rays в path-tracer проходят через геометрию тоньше определённого порога. Решение: сделать стены и полы не менее 0.2–0.3 unit толщиной (зависит от масштаба сцены) и убедиться, что нет дыр в геометрии. Альтернатива — Shadow Bias в настройках источника света, но он решает проблему только частично.

Unreal Engine: Lightmass и его специфика

В Unreal для запекания используется Lightmass — Global Illumination система со своими параметрами в World Settings → Lightmass. Для production-качества в документации Unreal рекомендуют следующие значения:

  • Static Lighting Level Scale. Глобальный масштаб для качества запекания — чем меньше значение, тем выше детализация lightmaps, но дольше запекание. По умолчанию 1.0 — для production-качества снижают до 0.5–0.75.
  • Num Indirect Lighting Bounces. Аналог Bounces в Unity. Для тёмных интерьеров — 4–6, для outdoor — 3–4.
  • Indirect Lighting Quality. Множитель количества семплов для indirect lighting. Default = 1.0, для чистого production — 2.0–4.0. При высоком значении резко возрастает время запекания.
Параметр Unity (Progressive Lightmapper) Unreal (Lightmass)
Количество отражений Indirect Bounces Num Indirect Lighting Bounces
Качество GI сэмплов Indirect Samples Indirect Lighting Quality
Масштаб детализации Scale in Lightmap (per-object) Static Lighting Level Scale (global)
Дополнительное GI для динамики Light Probes Volumetric Lightmap
Распределённое запекание Нет (одна машина) Swarm (до 10 машин)

В Unreal Lightmass запекание происходит через Swarm — распределённую систему, которая может использовать несколько компьютеров в сети одновременно. Для больших уровней с большим разрешением lightmaps (4096+) без Swarm запекание может занимать 8–24 часа; с несколькими машинами в Swarm — в 4–8 раз быстрее.

Volumetric Lightmap в Unreal — аналог Light Probes в Unity. Автоматически строится при запекании и обеспечивает ambient для динамических объектов. Параметр Volumetric Lightmap Detail Cell Size в World Settings контролирует плотность решётки. Меньше значение — точнее ambient для динамических объектов, больше объём данных.

Распространённые проблемы при запекании и их решения

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

Seams на lightmap. Видимые границы между UV-островами на освещённой поверхности. Причина: недостаточный padding в UV2. Решение — увеличить padding или пересмотреть разбивку UV-островов.

Тёмные пятна в углах. Не всегда artistically correct AO — иногда это недостаточное количество Indirect Samples. Проверить: увеличить Indirect Samples вдвое и посмотреть, изменились ли тёмные зоны. Если шум уменьшился — samples были занижены.

Жёлтый или красный tint на серых поверхностях. Colour bleeding от соседних окрашенных поверхностей с высоким Albedo Boost. Снизить Albedo Boost или проверить, нет ли соседних ярко окрашенных объектов без Cast Shadows = Off.

Lightmap слишком размыт. Слишком низкий Scale in Lightmap для данного объекта — не хватает texels. Увеличить Scale или пересмотреть приоритеты распределения texel density по сцене.

Как мы запекаем lightmap: пошаговый процесс

  1. Аудит — проверка UV2-развёрток, Import Settings, текущих настроек запекания. Выявляем узкие места и артефакты.
  2. Проектирование — распределение texel density по объектам сцены, настройка Scale in Lightmap для каждого элемента.
  3. Настройка параметров — Indirect Bounces, Intensity, Albedo Boost, качество сэмплов. Зависит от сцены и целевой платформы.
  4. Итеративное запекание — прогрессивное увеличение качества с контролем результата. При необходимости корректируем параметры.
  5. Финальная проверка — визуальный осмотр на артефакты, замеры производительности (FPS budget), исправление оставшихся проблем.
  6. Сдача — готовые lightmaps, документация по настройкам, рекомендации по дальнейшей оптимизации.

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

  • Полный аудит UV2-канала и Import Settings
  • Настройка Progressive Lightmapper или Lightmass под ваш проект
  • Итеративное запекание с контролем качества
  • Устранение артефактов (seams, light leaking, colour bleeding)
  • Документация по всем параметрам и финальным настройкам
  • Поддержка в течение 2 недель после сдачи проекта

Мы — команда с 10-летним опытом в геймдеве, выполнившая более 50 проектов с качественным освещением. Свяжитесь с нами для оценки вашего проекта — получите консультацию по lightmap-запеканию.

Масштаб задачи Ориентировочный срок
Запекание одного небольшого помещения (до 20 объектов) 1–2 дня
Interior-уровень среднего размера 3–6 дней
Outdoor-уровень с лесом, terrain и prop-ами 5–12 дней
Исправление артефактов в готовом проекте 2–4 дня
Настройка UV2 + запекание с нуля (весь уровень) 2–6 недель

Сначала аудит UV2-развёрток и настроек Import Settings, потом проектирование распределения texel density, итеративное запекание с увеличением качества, финальная проверка артефактов и сдача.

Стоимость рассчитывается индивидуально после анализа проекта: размер сцены, количество источников, целевая платформа и существующее состояние UV2. Пишите — мы оценим ваш проект в течение дня.

Какие проблемы решает настройка освещения?

Освещение в играх — это не только красиво, но и дорого. Типичная ситуация: художник запекает лайтмапы час, видит артефакт на стыке UV, правит развёртку и запекает ещё час. Такой цикл повторяется 3–5 раз за день. В масштабе проекта с десятком сцен теряются недели. Хуже того, неправильная стратегия освещения на старте (например, все источники в Realtime) на релизе выливается в 30–50% просадки FPS на мобильных устройствах и консолях.

Наша услуга по настройке освещения и рендеринга под ключ решает две главные боли: время запекания и производительность рантайм. Мы работаем с Unity и Unreal Engine — от аудита текущей системы до финальной оптимизации. За 5 лет мы реализовали более 30 проектов, включая инди и AA-тайтлы. Сертифицированные специалисты Unity (Unity Certified Developer) гарантируют результат.

Динамическое, статическое и смешанное освещение: как выбрать?

Прежде чем браться за инструменты, нужно определиться с моделью. В Unity три режима для каждого источника света — вот как они влияют на производительность:

Режим Тени Нагрузка GPU Нагрузка CPU Применение
Realtime Динамические Высокая Средняя Персонажи, движущиеся объекты
Baked Запечённые в текстуру Минимальная Нет Статичные декорации
Mixed Гибрид Средняя Низкая Ключевые источники с тенями

Ошибка, которую мы видим регулярно: студия выставляет всё освещение в Realtime и получает сцену с 12 источниками теней на экране. На мобильных платформах это гарантированный провал по производительности. Mixed Lighting с подрежимами Subtractive или Shadowmask — рабочий компромисс для большинства проектов. Статичные объекты получают запечённые тени, динамические — реалтаймовые от тех же источников.

Как оптимизировать запечённое освещение без потери качества?

Это та часть, где теряется больше всего времени. Вот как мы это делаем.

Выбор между Enlighten и Progressive Lightmapper

Unity поддерживает два бэкенда для запекания:

  • Enlighten — старый движок для реального времени, даёт менее точный GI. Формально устарел, но всё ещё используется на мобильных платформах.
  • Progressive Lightmapper (CPU/GPU) — современный path-tracing бэкенд. GPU-вариант на хорошей карте работает в 5–10 раз быстрее CPU.

По умолчанию мы используем Progressive Lightmapper (GPU) для PC и консолей. Ключевые параметры:

Lightmap Resolution:    10–20 texels/unit для большинства сцен
Max Bounces:            2–4 (не 8, как стоит по умолчанию)
Samples (Direct):       32–64
Samples (Indirect):     512–1024
Denoiser:               OIDN (Intel) или OptiX (NVIDIA)

Деноизер обязателен. Без него для чистого результата нужны тысячи сэмплов. С деноизером хватает 256–512, и итерация занимает минуты, а не часы. “Progressive Lightmapper — recommended for high-quality baked lighting in Unity” — Unity Documentation.

Типичные артефакты и их причины

  • Светлые швы между объектами (seams). Причина — разные UV-острова не согласованы на границах. Решение: выставить Stitch Seams или использовать Auto UV Charts с запасом отступа (Pack Margin).
  • Тёмные пятна у основания объектов. Пересечение коллайдера с полом. Решение: поднять объект на 0.01–0.05 unit или настроить Backface Tolerance.
  • Засвет на стыках лайтмап-атласов. UV-острова от разных объектов слишком близко в атласе. Решение: увеличить Pack Margin или вручную раскладывать крупные объекты в отдельные атласы через Lightmap Parameters.

Организация сцены для быстрого запекания

Большой масштаб сцены — главный враг скорости. Вот пошаговый процесс, который мы применяем:

  1. Исключаем мелкие объекты (меньше 0.5 unit) — они получают освещение через Light Probes.
  2. Используем Instanced Meshes для повторяющихся объектов — деревья, камни, заборы шарят один UV-атлас.
  3. Terrain запекаем отдельно с пониженным разрешением (2–5 texels/unit) — на земле детализация всё равно не читается.
  4. Проверяем Backface Tolerance на сложной геометрии — это предотвращает тёмные пятна.

Соблюдение этих правил сокращает время запекания на 50–70% без потери качества. Wikipedia: Lightmap

Light Probes и Reflection Probes: зачем и как настраивать?

Light Probes — система, дающая динамическим объектам иллюзию запечённого освещения. Пробы нужно расставлять каждые 2–4 метра в зонах с перепадом освещения. Слишком редкая расстановка даёт резкие скачки при перемещении персонажа.

Probe Volumes (в современных версиях Unity с HDRP) заменяют ручную расстановку на объёмную сетку. Для больших открытых сцен это существенная экономия времени.

Reflection Probes — корректные отражения на PBR-материалах. Без них металл и зеркала отражают скайбокс вместо окружения. Настройка:

  • Baked для статичных помещений
  • Realtime для зон с изменяемым окружением (телевизор, экраны)
  • Box Projection для корректного отражения геометрии комнаты

Wikipedia: Screen Space Ambient Occlusion

Пост-обработка: SSAO и SSR

SSAO (Screen Space Ambient Occlusion) добавляет затемнение в щелях и углах. Типичная ошибка — слишком высокий Radius и Intensity. Рабочие значения: Radius 0.5–1.5, Intensity 1.0–2.0.

SSR (Screen Space Reflections) даёт динамические отражения на горизонтальных поверхностях. Техника работает только с видимым на экране — это и ограничение, и плюс по производительности.

Что входит в работу по настройке освещения

В рамках услуги «настройка освещения и рендеринга» мы предоставляем:

  1. Аудит текущей системы — профилирование через Frame Debugger и RenderDoc, выявление узких мест.
  2. Стратегия освещения — документация с выбором режимов (Mixed/Baked/Realtime) под вашу платформу.
  3. Оптимизация запекания — настройка Progressive Lightmapper, UV-развёртки, Light Probes.
  4. Настройка Reflection Probes и пост-обработки (SSAO, SSR, Bloom) под стилистику.
  5. Финальный отчёт с результатами замеров производительности (FPS budget, draw calls).
  6. Онлайн-консультация — разбор вашей сцены в прямом эфире.
Пример экономии: проект на Unity с открытым миром Исходное время запекания одной сцены — 4 часа. После оптимизации снижено до 1 часа 20 минут. Экономия времени за месяц разработки — 40+ часов, что эквивалентно ~70 000 ₽.

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

Мы работаем по чёткому регламенту:

  • Аналитика (1–2 дня) — разбор вашей сцены, скриншоты, профилирование.
  • Проектирование (1 день) — выбор стратегии, план оптимизации.
  • Реализация (3–7 дней в зависимости от сложности) — правки UV, настройка Lightmapper, Light Probes, пост-обработка.
  • Тестирование (1–2 дня) — замеры производительности, устранение артефактов.
  • Деплой — передача файлов сцены, документация, чек-лист.

Сроки ориентировочно: от 5 до 15 рабочих дней. Стоимость рассчитывается индивидуально — напишите нам для оценки вашего проекта.

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