Налаштування Global Illumination для ігор: вирішення проблем GI

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

Від імерсивних застосунків до ігрових світів і 3D-сцен

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

Відвідати персоналізований сайт
Показано 1 з 1Усі 242 послуг
Налаштування Global Illumination для ігор: вирішення проблем GI
Складний
від 1 дня до 1 тижня
Часті запитання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • 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

Чому 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% (від $500 до $2000 на типовий проєкт). Замовте консультацію — ми допоможемо уникнути цих помилок.

Як вибрати між Baked, Mixed та Realtime GI?

Перший крок — визначити, який режим потрібен: повністю запечений (Baked Indirect), змішаний (Mixed) або повністю реалтаймовий. Це архітектурне рішення, яке впливає на весь пайплайн.

Baked Indirect підходить для статичних сцен — казуальні ігри, RPG з фіксованими рівнями. В Unity налаштовуємо через Window → Rendering → Lighting, обираємо Progressive GPU Lightmapper (він в 1.5–2 рази швидше за CPU-варіант на сценах до 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% (близько $800) порівняно з початковою оцінкою.

Процес роботи над 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.

Що входить у роботу під ключ

  • Діагностика поточного GI (аудит UV, лайтмап, продуктивності).
  • Вибір архітектури освітлення (Baked/Mixed/Realtime).
  • Налаштування Lightmap Parameters, Light Probes, Reflection Probes.
  • Запікання лайтмап з усуненням артефактів.
  • Валідація на цільових пристроях.
  • Документація та інструкція з оновлення освітлення.
  • 1 місяць безкоштовної підтримки після здачі.

Оцінимо ваш проєкт за 1 день. Пишіть на консультацію — обговоримо терміни та вартість.

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

Які проблеми вирішує налаштування освітлення?

Художник запікає лайтмапи годину, знаходить артефакт на стику UV, виправляє розгортку і запікає ще годину. Цикл повторюється 3–5 разів на день. У масштабі проекту з десятком сцен втрачаються тижні. Неправильна стратегія на старті (усі джерела в Realtime) на релізі дає 30–50% просадки FPS на мобільних пристроях і консолях. Послуги з налаштування освітлення та рендерингу під ключ вирішують дві головні болі: час запікання і продуктивність рантайм. За 5 років ми реалізували понад 30 проектів — від інді до AA-тайтлів. Свяжіться з нами для отримання консультації: розберемо вашу сцену та запропонуємо рішення.

Динамічне, статичне та змішане освітлення: як обрати?

В Unity три режими для джерела світла — ось як вони впливають на продуктивність:

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

Помилка: студія виставляє все освітлення в Realtime і отримує сцену з 12 джерелами тіней на екрані. На мобільних платформах це гарантований провал. Mixed Lighting з підрежимами Subtractive або Shadowmask — робочий компроміс. Статичні об'єкти отримують запечені тіні, динамічні — реалтаймові від тих самих джерел.

Як оптимізувати запечене освітлення без втрати якості?

Саме тут втрачається найбільше часу. Ось як ми це робимо.

Вибір між Enlighten та Progressive Lightmapper

Unity підтримує два бекенди. Enlighten — старий двигун для реального часу, дає менш точний GI (в 2–3 рази поступається Progressive за якістю). Progressive Lightmapper (GPU) на хорошій карті працює в 5–10 разів швидше за CPU. За замовчуванням ми використовуємо Progressive Lightmapper для 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, і ітерація займає хвилини, а не години.

Чому виникають артефакти на лайтмапах та як їх прибрати?

Часті артефакти та рішення зведено в таблицю:

Артефакт Причина Рішення
Світлі шви між об'єктами Різні 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 на складній геометрії.
Чек-лист підготовки сцени до запікання
  • [ ] Виключені дрібні об'єкти (<0.5 unit)
  • [ ] Використані Instanced Meshes
  • [ ] Terrain запікати окремо
  • [ ] Перевірено Backface Tolerance

Дотримання цих правил скорочує час запікання на 50–70% без втрати якості. Wikipedia описує техніку запеченого освітлення як Lightmap.

Light Probes та Reflection Probes: навіщо та як налаштовувати?

Light Probes дають динамічним об'єктам ілюзію запеченого освітлення. Проби потрібно розставляти кожні 2–4 метри в зонах з перепадом освітлення. Занадто рідкісна розстановка дає різкі стрибки при переміщенні персонажа. Probe Volumes (HDRP) замінюють ручну розстановку на об'ємну сітку — для великих відкритих сцен це суттєва економія часу.

Reflection Probes — коректні відбиття на PBR-матеріалах. Без них метал і дзеркала відбивають скайбокс замість оточення. Налаштування: Baked для статичних приміщень, Realtime для зон зі змінним оточенням (телевізор, екрани), Box Projection для коректного відбиття геометрії.

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

SSAO додає затемнення в щілинах і кутах. Типова помилка — занадто високі Radius та Intensity. Робочі значення: Radius 0.5–1.5, Intensity 1.0–2.0. SSR дає динамічні відбиття на горизонтальних поверхнях, працює лише з видимим на екрані.

Що входить до роботи з налаштування освітлення

В рамках послуги динамічного освітлення та рендерингу ми надаємо:

  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 годин розробки.

Процес роботи та терміни

Працюємо за чітким регламентом:

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

Терміни орієнтовно: від 5 до 15 робочих днів. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проекту. Замовте послугу налаштування динамічного освітлення — отримайте стабільний FPS без артефактів. Отримайте безкоштовну консультацію з налаштування освітлення під ключ: від аналізу до фінальної оптимізації.