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

Чому GI-пайплайн ламається частіше, ніж здається? Сцена виглядає правдоподібно, коли світло не лише падає безпосередньо від джерела, але й відбивається від стін, перетікає через дверні прорізи, фарбує тіньові зони в теплий чи холодний відтінок. Без <cite><a href="https://uk.wikipedia.org/wiki/Гло

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

Інші послуги студії

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
    1526
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1030
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    657
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    738
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Навчальна вікторина для дітей «Покупки в магазині»
    142

Чому 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 — отримайте професійний результат.