Настройка Global Illumination для игр: решение проблем GI

Почему GI-пайплайн ломается чаще, чем кажется? Сцена выглядит правдоподобно, когда свет не только падает напрямую от источника, но и отражается от стен, перетекает через дверные проёмы, окрашивает теневые зоны в тёплый или холодный оттенок. Без [глобального освещения](https://ru.wikipedia.org/wik

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

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

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
    1504
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1005
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    635
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    716
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    95

Почему GI-пайплайн ломается чаще, чем кажется?

Сцена выглядит правдоподобно, когда свет не только падает напрямую от источника, но и отражается от стен, перетекает через дверные проёмы, окрашивает теневые зоны в тёплый или холодный оттенок. Без глобального освещения всё это приходится имитировать вручную через дополнительные Fill Lights — и всё равно картинка выглядит плоской. Наша настройка Global Illumination для игр в Unity и Unreal Engine избавляет от этого компромисса на любом движке.

Самая частая жалоба: «запекли лайтмапы, а стыки между тайлами светятся белой полосой». Это расхождение UV-развёртки в Lightmap UV (UV Channel 1) — либо острова слишком плотно упакованы, либо Texels Per Unit выставлен одинаково для объектов разного масштаба. В результате Progressive Lightmapper не успевает корректно сэмплировать граничные пиксели, и вместо плавного перехода получаем артефакт.

Вторая типичная ситуация: Realtime GI через Enlighten работает в Editor, но в билде освещение «скачет» при загрузке сцены. Причина обычно в том, что Lighting Data Asset не был включён в билд — его надо явно прописать в Scene settings либо генерировать через Lighting.BakeAsync() и хранить в Addressables.

Отдельная история с HDRP и Lumen-подобными решениями. В HDRP Screen Space GI (SSGI) даёт красивый результат, но требует корректной настройки Ray Tracing Acceleration Structure — если в сцене есть skinned meshes с включённым Raytracing, каждый кадр пересчитывает BVH и Frame Time резко растёт. Для скинированных персонажей лучше отключить Raytracing на компоненте Mesh Renderer и оставить их вне Ray Tracing Acceleration Structure.

Наш опыт показывает, что правильное выявление этих проблем на старте сокращает время доработок на 40%, а экономия бюджета может достигать 30–50%. Закажите консультацию — мы поможем избежать этих ошибок.

Как выбрать между Baked, Mixed и Realtime GI?

Первый шаг — определить, какой режим нужен: полностью запечённый (Baked Indirect), смешанный (Mixed) или полностью реалтаймовый. Это архитектурное решение, которое влияет на весь пайплайн.

Baked Indirect подходит для статичных сцен — казуальные игры, RPG с фиксированными уровнями. В Unity настраиваем через Window → Rendering → Lighting, выбираем Progressive GPU Lightmapper (быстрее CPU-варианта на 50–70% на сценах до 500 объектов), выставляем Lightmap Resolution отдельно для каждого типа поверхности через Lightmap Parameters Asset. Для внешних сцен с большими открытыми пространствами разумно понизить разрешение для удалённых объектов через LOD Groups.

Mixed Mode с Subtractive или Shadowmask — компромисс для мобильных проектов с динамическими персонажами. Shadowmask хранит запечённые тени в отдельном канале текстуры и позволяет динамическим объектам отбрасывать тени в реалтайме поверх запечённых. Subtractive проще и дешевле, но некорректно работает с цветными тенями.

Для полностью динамических сцен — Light Probes и Reflection Probes. Light Probe Group размещаем вручную в ключевых точках перехода света (дверные проёмы, углы комнат, переходы улица/помещение). Автоматическое размещение через Adaptive Probe Volume (доступно в последних версиях Unity) значительно ускоряет работу на больших уровнях — зоны с частыми изменениями освещения получают больше зондов, открытые однородные пространства — меньше.

Reflection Probes требуют отдельного внимания. Box Projection для interior spaces обязателен — без него отражения на полу выглядят как снятые с улицы. Тип Realtime с Refresh Mode Every Frame убивает производительность (падение FPS до 10–15), поэтому для большинства сцен используем Baked или Realtime с Refresh Mode On Awake + ручной вызов RenderProbe() при изменении сцены.

Сравнение режимов в таблице:

Режим Когда использовать Производительность Время настройки
Baked Indirect Статичные сцены, казуальные игры Высокая (все запечено) Среднее (запекание)
Mixed (Shadowmask) Мобильные проекты с динамикой Средняя (часть реалтайм) Высокое (гибрид)
Realtime (Probes) Динамические сцены, открытые миры Низкая (реалтайм расчёт) Низкое (без запекания)

Кейс: настройка GI для изометрической RPG

Наш клиент разрабатывал изометрическую RPG с тайловыми уровнями. Первоначальное время запекания составляло 4 часа на сцену среднего размера. После аудита выяснилось: у 60% объектов Contribute GI был включён по умолчанию, включая декоративные мелкие пропсы (камни, трава) с площадью UV-острова в 2–4 пикселя. Progressive Lightmapper тратил огромное время на сэмплирование объектов, которые не давали визуального вклада в итоговый лайтмап.

Решение: вынесли мелкие пропсы в отдельный Lightmap Parameters Asset с параметром Indirect Resolution 0.5 (против 2.0 у основных поверхностей), а декоративные объекты меньше 0.5 м² полностью перевели в Receive GI: Light Probes. Время запекания упало до 35 минут (снижение на 85%), визуальное качество не изменилось — мелкие объекты корректно принимают освещение через ближайший Light Probe. Экономия бюджета на доработках составила около 40% по сравнению с исходной оценкой.

Процесс работы над GI: 6 шагов

  1. Аудит текущего освещения и UV-развёртки — смотрим Scene Lighting Stats, анализируем количество и размер лайтмап-текстур, проверяем UV1 через Lightmap UV Preview. На этом этапе видно 80% проблем.
  2. Согласование архитектурного решения — выбираем Baked/Mixed/Realtime исходя из платформы и художественного стиля. Если проект уже в продакшене, смена режима может потребовать переработки шейдеров.
  3. Настройка параметров запекания — создаём Lightmap Parameters Asset под разные типы поверхностей, расставляем Light Probe Group и Reflection Probes (вручную или через Adaptive Probe Volume).
  4. Тестовое запекание и устранение артефактов — Lighting Seam Stitching, проверка через Rendering Debugger, анализ Indirect Diffuse.
  5. Валидация на целевом железе — через GPU Profiler и проверка корректности LOD-переходов освещения.
  6. Передача документации — Lighting Data Asset, параметры, инструкция по обновлению. Поддержка после сдачи (гарантия 1 месяц на корректировки).
Масштаб сцены Ориентировочные сроки
Одна небольшая локация (indoor, до 50 объектов) 2–5 дней
Средний уровень (mixed indoor/outdoor, до 300 объектов) 1–2 недели
Открытый мир или комплекс из нескольких сцен 3–6 недель

Типичные ошибки при настройке GI

Включать Contribute GI на всех объектах без разбора — первая и самая частая ошибка. Особенно болезненно это на уровнях с растительностью: каждый экземпляр травы или листвы с включённым Contribute GI многократно увеличивает время запекания и плодит артефакты в лайтмапах.

Использовать одинаковый Lightmap Resolution для всей сцены. Дальние горы и ближний интерьер не могут иметь одинаковое texels-per-unit — разница должна быть 4–8x в пользу ближних поверхностей.

Забывать о Lighting Seam Stitching. В Progressive Lightmapper он включается в Mesh Renderer → Stitch Lightmap Seams и исправляет большинство стыков между соседними плитками уровня без ручных правок.

Пренебрегать проверкой через Rendering Debugger (Window → Analysis → Rendering Debugger). Режим просмотра Lighting → Indirect Diffuse сразу показывает зоны с нулевым вкладом GI — именно там часто прячутся неправильно настроенные объекты или пробелы в покрытии Light Probe.

Наша команда имеет 10+ лет опыта в геймдеве и реализовала GI более чем для 50 проектов. Мы сертифицированы по Unity и Unreal. Закажите настройку GI — получите профессиональный результат.