Сборка 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 Engine.
В 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 без компромісів по якості.
Наприклад, на одному з проєктів (open-world survival) ми оптимізували запекання lightmap, скоротивши час з 12 до 3 годин завдяки вибірковій роздільній здатності та налаштуванню Indirect Samples, і досягли стабільних 60 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 та перевірка на цільовому залізі. Зв'яжіться з нами для консультації — оцінимо ваш проєкт і запропонуємо оптимальне рішення під ключ. Замовте аудит освітлення, щоб уникнути переробок на пізніх етапах.






