Настройка динамического и статического освещения в играх

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

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

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

Посетить персонализированный сайт
Показано 1 из 1Все 242 услуг
Настройка динамического и статического освещения в играх
Средний
от 2 дней до 2 недель
Часто задаваемые вопросы

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

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

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

  • 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

Сборка lightmap для сцены с 200+ объектами занимает 12 часов, а результат всё равно шумный. Знакомо? Каждый второй проект сталкивается с этой проблемой, когда приходится переделывать освещение в середине производства. Мы решаем такие задачи ежедневно: наш опыт — 5+ лет и 50+ проектов в геймдеве.

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

Как выбрать между статическим и динамическим освещением?

Статическое освещение даёт лучшее качество теней и ambient, но не реагирует на изменения в сцене. Динамическое — реагирует на всё, но стоит дороже по GPU. Гибридная схема сочетает оба подхода в 3-4 раза эффективнее по сравнению с чисто динамическим освещением. Мы помогаем подобрать оптимальный баланс под вашу платформу и жанр.

Static lighting: Progressive Lightmapper и его параметры

В Unity статическое освещение запекается через Progressive Lightmapper (GPU или CPU). Это path-tracing решение, которое рассчитывает indirect lighting, soft shadows и ambient occlusion для статичных объектов, сохраняя результат в Lightmap Textures.

Ключевые параметры, которые напрямую влияют на результат:

Lightmap Resolution. Измеряется в texels per unit. Для внешних поверхностей стандарт — 4–8 texels/unit, для hero-поверхностей (полы, стены в важных локациях) — 16–32. Выше — дольше запекание и больше VRAM для хранения lightmap. Ниже — видимая пикселизация теней. Типичная ошибка: ставить одинаковое значение для всей сцены, вместо того чтобы контролировать через Scale in Lightmap на каждом объекте.

Samples (Direct/Indirect/Environment). Direct Samples — количество семплов для прямых источников. 512–1024 для production, меньше только для быстрых preview-запеканий. Indirect Samples — глубина расчёта переотражений, 512–2048 в зависимости от сложности сцены. Environment Samples — влияет на качество ambient от skybox. Занижение Indirect Samples — главная причина шума на потолках и в углах.

Denoising. Встроенный деноизер Unity (OptiX для Nvidia, OIDN для CPU) убирает шум от path-tracing. Важно понимать: деноизинг сглаживает, а не улучшает качество. При слишком малом количестве семплов деноизер размывает тени до потери деталей. Правило: семплов должно быть достаточно, чтобы шум был мелким — тогда деноизер его аккуратно убирает.

Lightmap Compression. Unity по умолчанию сжимает lightmaps в BC6H (HDR). Если сцена требует точных цветовых данных в освещении — например, coloured light leaking через окна — BC6H правильный выбор. Для simple outdoor без цветных источников можно снизить до BC4 для экономии VRAM.

Dynamic lighting: Shadow Cascades и производительность

Динамические тени — это shadow map rendering: сцена рендерится с точки зрения света в depth texture, которая потом используется при основном рендере для определения затенённых зон.

Shadow Cascades — критический параметр для Directional Light (солнце, луна). Один shadow map на всю сцену означает компромисс: либо мелкие, но охватывающие, либо детальные, но только для ближней зоны. Cascaded Shadow Maps делят дистанцию на 2–4 зоны с разным разрешением shadow map: ближняя зона — высокое разрешение, дальняя — низкое.

Правильная настройка Cascade Distances — баланс между качеством и производительностью. Если First Cascade слишком большой — тени ближних объектов размыты (pixelated shadowmap). Если слишком маленький — видна резкая граница перехода между каскадами. Граница перехода сглаживается через Shadow Cascade Blend в Unity или Dynamic Shadow Distance Fadeout в Unreal.

В Unreal Engine 5 с Lumen динамическое global illumination вычисляется в Screen Space + Signed Distance Fields, что кардинально меняет подход к освещению. Shadow Cascades для Directional Light остаются (Virtual Shadow Maps в UE5 — значительное улучшение качества при контролируемом бюджете), но indirect lighting от Lumen не требует Light Probes и Lightmaps — это real-time GI.

Почему гибридная схема — стандарт индустрии?

Практическая схема для большинства проектов:

  • Directional Light (солнце) — Mixed mode: статические тени в lightmap, динамические тени для персонажей через Cascades
  • Крупные Point Lights (фонари, костры) — Baked, если статичные. Динамические только если горят/гаснут по геймплею
  • Мелкие accent lights (свечи, экраны) — Baked, часто как Emissive в lightmap
  • Light Probes — расставить вручную по зонам, не полагаться на Auto Generate

Light Probes и смешанное освещение

Light Probes в Unity — сферические гармоники (Spherical Harmonics, L2), хранящие ambient lighting для конкретной точки пространства. Динамические объекты (персонажи, частицы, транспорт) не могут использовать lightmaps — они берут освещение из Light Probes.

Ошибка, которая встречается почти на каждом проекте: Light Probes расставлены слишком редко или только по периметру уровня, а не по зонам с разным освещением. Персонаж, входящий из освещённой улицы в тёмное здание, получает одинаковый ambient в обоих местах — освещение не меняется. Решение: плотная сетка Probes в переходных зонах (дверные проёмы, арки, под навесами), разреженная — в однородно освещённых областях.

Light Probe Proxy Volume (LPPV) — для крупных динамических объектов (транспорт, большие существа): вместо одного Probe в центре объекта, LPPV строит объёмную решётку Probes по габаритам объекта. Разница заметна: без LPPV большой грузовик освещён равномерно как сплошной объект, с LPPV — правая сторона темнее, если она в тени здания.

Enlighten — система real-time GI в Unity (доступна в HDRP). Рассчитывает переотражения от динамически меняющегося Directional Light — day/night cycle с Enlighten означает, что ambient меняется вместе с положением солнца без перезапекания lightmaps. Стоит CPU времени при каждом изменении источника, поэтому используется избирательно: только для Directional Light, остальные источники — статические или baked.

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

Мы предлагаем комплексный подход: аудит текущего освещения с профилированием, проектирование гибридной схемы, настройка всех параметров (Lightmap Resolution, Shadow Cascades, Light Probes), запекание lightmap с оптимизацией, проверка на целевом железе, документация настроек. В результате — стабильный FPS без компромиссов по качеству.

Параметр Статическое Динамическое Гибридное
Качество теней Высокое (baked) Среднее (зависит от разрешения) Высокое на static, среднее на dynamic
Нагрузка на GPU Низкая Высокая Средняя
Поддержка day/night Нет (только rebake) Да Да (mixed)
Сложность настройки Средняя Средняя Высокая
Масштаб задачи Ориентировочный срок
Настройка освещения одной небольшой локации 2–4 дня
Interior с full GI и baked lightmaps 4–8 дней
Open-world уровень с day/night cycle 2–4 недели
Оптимизация и исправление существующего освещения по согласованию

Начинаем с технического аудита: платформа, целевой framerate, pipeline (URP/HDRP/Lumen). Дальше — проектирование схемы освещения, расстановка источников, настройка shadow cascades, запекание lightmaps и проверка на целевом железе. Свяжитесь с нами для консультации — оценим ваш проект и предложим оптимальное решение под ключ. Закажите аудит освещения, чтобы избежать переделок на поздних этапах.

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

Освещение в играх — это не только красиво, но и дорого. Типичная ситуация: художник запекает лайтмапы час, видит артефакт на стыке 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 рабочих дней. Стоимость рассчитывается индивидуально — напишите нам для оценки вашего проекта.

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