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

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

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

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

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Настройка динамического и статического освещения в играх
Средняя
от 2 рабочих дней до 2 недель
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    671
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

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

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

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

Статическое освещение: 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.

Динамическое освещение: 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.

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.

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

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

  • Directional Light (солнце) — Mixed mode: статические тени в lightmap, динамические тени для персонажей через Cascades
  • Крупные Point Lights (фонари, костры) — Baked, если статичные. Динамические только если горят/гаснут по геймплею
  • Мелкие accent lights (свечи, экраны) — Baked, часто как Emissive в lightmap
  • Light Probes — расставить вручную по зонам, не полагаться на Auto Generate
Масштаб задачи Ориентировочный срок
Настройка освещения одной небольшой локации 2–4 дня
Interior с full GI и baked lightmaps 4–8 дней
Open-world уровень с day/night cycle 2–4 недели
Оптимизация и исправление существующего освещения по согласованию

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

Стоимость рассчитывается индивидуально после анализа требований к проекту.