Запікання карт освітлення (Lightmaps) для графіки

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1Усі 242 послуг
Запікання карт освітлення (Lightmaps) для графіки
Середній
від 4 годин до 3 днів
Часті запитання

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

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

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

  • 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

Запікання карт освітлення (Lightmaps) для графіки

Lightmap-запікання — це технологія, яку прийнято вважати «застарілою» на фоні Lumen та real-time GI. На практиці вона залишається основним способом отримати якісне, продуктивне освітлення на мобільних платформах і бюджетних PC. Навіть у Unreal Engine 5-проєктах багато студій використовують baked lighting для статичних інтер'єрів, тому що Lumen при всіх перевагах не дає тієї ж чіткості тіней і тієї ж продуктивності на слабкому залізі.

Ми, як команда геймдев-інженерів із 10-річним досвідом, гарантуємо, що якість запеченого освітлення — це завжди результат тонкого налаштування десятка параметрів. Більшість проблем із «поганими» lightmaps — наслідок неправильно виставлених саме цих параметрів. Замовте аудит вашого проєкту — ми виявимо вузькі місця та запропонуємо рішення.

Чому UV2 та texel density — головна причина артефактів?

Lightmap у Unity або Unreal запікається в окремий UV-канал — UV2 (або Lightmap UV у Unreal). Це не та розгортка, що використовується для albedo. Lightmap UV має жорсткі вимоги:

  • Жодних перекриттів (overlapping): кожен трикутник меша — на своєму унікальному місці в UV2
  • Мінімальний відступ між островами (padding): не менше 2 texels при цільовому розширенні lightmap. Якщо lightmap 512px і padding 2px — це ~0.4% від текстури на кожен шов. При 2048px — 0.1%. Недостатній padding = bleeding світлих зон у темні через суміжні острови UV
  • Всі острови мають бути розгорнуті без дзеркальних відображень (no mirrored UVs): дзеркалювання дає коректний albedo, але в lightmap викликає подвійне освітлення на симетричних частинах

Unity автоматично генерує Lightmap UV при імпорті (Generate Lightmap UVs в Import Settings). Для простої геометрії це працює. Для складних мешів з гострими кутами або тонкими деталями — автогенерація створює некоректні острови, які при запіканні дають видимі seams на lightmap. У таких випадках UV2 робиться вручну в DCC-інструменті (Blender, Maya, 3ds Max) та імпортується вже готовим.

Texel density в Lightmap UV — це скільки пікселів lightmap припадає на одиницю площі поверхні. Для великих плоских поверхонь (підлога, стіни) — потрібна більша ділянка в UV2. Для дрібних деталей (плінтус, дверна ручка) — менша. Unity та Unreal дозволяють контролювати це через Scale in Lightmap (Unity) та Lightmap Resolution Scale (Unreal) на кожному об'єкті окремо. Однаковий Scale для всіх об'єктів сцени — типова помилка: дрібні об'єкти отримують надлишкове розширення, великі — недостатнє.

Як правильно налаштувати Progressive Lightmapper?

У Unity головний інструмент для запікання — Progressive Lightmapper (з версії 2018.3 LTS, GPU-прискорена версія з'явилася пізніше). Згідно з документацією Unity, основні параметри, що впливають на результат:

Indirect Bounces. Кількість перевідбиттів світла. При Bounces=0 — лише пряме освітлення, без GI. При Bounces=2 — світло відбивається від поверхонь двічі, заповнюючи тіні м'яким ambient. Для темних приміщень Bounces=2–3 — мінімум для достовірного вигляду. Для яскравих outdoor часто достатньо 1–2.

Indirect Intensity та Albedo Boost. Indirect Intensity масштабує яскравість GI глобально. Albedo Boost підсилює вплив кольору поверхонь на перевідбите світло — при значенні 1.0 поверхня з яскраво-червоним albedo створює червонуватий ambient на сусідніх поверхнях (colour bleeding). При Albedo Boost > 1 ефект посилюється, при < 1 — кольори поверхонь менше впливають на GI. Для реалістичного рендеру Albedo Boost = 1, для менш «брудного» ambient — 0.5–0.8.

Prioritize View та Progressive Updates. При запіканні Progressive Lightmapper починає з пікселів, видимих у Scene View — це зручно для ітеративної роботи, але при фінальному запіканні краще вимкнути для рівномірної якості по всій сцені.

Типова проблема на великих сценах — light leaking: світло проникає крізь тонкі стіни. Причина — shadow rays в path-tracer проходять через геометрію тоншу за певний поріг. Рішення: зробити стіни та підлоги не менше 0.2–0.3 unit завтовшки (залежить від масштабу сцени) і переконатися, що немає дірок у геометрії. Альтернатива — Shadow Bias у налаштуваннях джерела світла, але він вирішує проблему лише частково.

Unreal Engine: Lightmass та його специфіка

У Unreal для запікання використовується Lightmass — Global Illumination система зі своїми параметрами в World Settings → Lightmass. Для production-якості в документації Unreal рекомендують наступні значення:

  • Static Lighting Level Scale. Глобальний масштаб для якості запікання — чим менше значення, тим вища деталізація lightmaps, але довше запікання. За замовчуванням 1.0 — для production-якості знижують до 0.5–0.75.
  • Num Indirect Lighting Bounces. Аналог Bounces у Unity. Для темних інтер'єрів — 4–6, для outdoor — 3–4.
  • Indirect Lighting Quality. Множник кількості семплів для indirect lighting. Default = 1.0, для чистого production — 2.0–4.0. При високому значенні різко зростає час запікання.
Параметр Unity (Progressive Lightmapper) Unreal (Lightmass)
Кількість відбиттів Indirect Bounces Num Indirect Lighting Bounces
Якість GI семплів Indirect Samples Indirect Lighting Quality
Масштаб деталізації Scale in Lightmap (per-object) Static Lighting Level Scale (global)
Додаткове GI для динаміки Light Probes Volumetric Lightmap
Розподілене запікання Немає (одна машина) Swarm (до 10 машин)

У Unreal Lightmass запікання відбувається через Swarm — розподілену систему, яка може використовувати кілька комп'ютерів у мережі одночасно. Для великих рівнів з великим розширенням lightmaps (4096+) без Swarm запікання може займати 8–24 години; з кількома машинами в Swarm — у 4–8 разів швидше.

Volumetric Lightmap в Unreal — аналог Light Probes у Unity. Автоматично будується при запіканні та забезпечує ambient для динамічних об'єктів. Параметр Volumetric Lightmap Detail Cell Size у World Settings контролює щільність решітки. Менше значення — точніше ambient для динамічних об'єктів, більший об'єм даних.

Поширені проблеми при запіканні та їх вирішення

Чому виникають артефакти? Розбір типових випадків

Seams на lightmap. Видимі межі між UV-островами на освітленій поверхні. Причина: недостатній padding у UV2. Рішення — збільшити padding або переглянути розбивку UV-островів.

Темні плями в кутах. Не завжди artistically correct AO — іноді це недостатня кількість Indirect Samples. Перевірити: збільшити Indirect Samples вдвічі та подивитися, чи змінилися темні зони. Якщо шум зменшився — samples були занижені.

Жовтий або червоний tint на сірих поверхнях. Colour bleeding від сусідніх пофарбованих поверхонь із високим Albedo Boost. Знизити Albedo Boost або перевірити, чи немає сусідніх яскраво пофарбованих об'єктів без Cast Shadows = Off.

Lightmap занадто розмитий. Занадто низький Scale in Lightmap для даного об'єкта — не вистачає texels. Збільшити Scale або переглянути пріоритети розподілу texel density по сцені.

Як ми запікаємо lightmap: покроковий процес

  1. Аудит — перевірка UV2-розгорток, Import Settings, поточних налаштувань запікання. Виявляємо вузькі місця та артефакти.
  2. Проектування — розподіл texel density по об'єктах сцени, налаштування Scale in Lightmap для кожного елемента.
  3. Налаштування параметрів — Indirect Bounces, Intensity, Albedo Boost, якість семплів. Залежить від сцени та цільової платформи.
  4. Ітеративне запікання — прогресивне збільшення якості з контролем результату. При необхідності коригуємо параметри.
  5. Фінальна перевірка — візуальний огляд на артефакти, виміри продуктивності (FPS budget), виправлення решти проблем.
  6. Здача — готові lightmaps, документація по налаштуваннях, рекомендації щодо подальшої оптимізації.

Що входить у роботу

  • Повний аудит UV2-каналу та Import Settings
  • Налаштування Progressive Lightmapper або Lightmass під ваш проєкт
  • Ітеративне запікання з контролем якості
  • Усунення артефактів (seams, light leaking, colour bleeding)
  • Документація по всіх параметрах і фінальних налаштуваннях
  • Підтримка протягом 2 тижнів після здачі проєкту

Ми — команда з 10-річним досвідом у геймдеві, яка виконала понад 50 проєктів з якісним освітленням. Зв'яжіться з нами для оцінки вашого проєкту — отримайте консультацію з lightmap-запікання.

Масштаб задачі Орієнтовний термін
Запікання одного невеликого приміщення (до 20 об'єктів) 1–2 дні
Interior-рівень середнього розміру 3–6 днів
Outdoor-рівень з лісом, terrain та prop-ами 5–12 днів
Виправлення артефактів у готовому проєкті 2–4 дні
Налаштування UV2 + запікання з нуля (весь рівень) 2–6 тижнів

Спочатку аудит UV2-розгорток і налаштувань Import Settings, потім проектування розподілу texel density, ітеративне запікання зі збільшенням якості, фінальна перевірка артефактів і здача.

Вартість розраховується індивідуально після аналізу проєкту: розмір сцени, кількість джерел, цільова платформа та існуючий стан UV2. Пишіть — ми оцінимо ваш проєкт протягом дня.

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

Художник запікає лайтмапи годину, знаходить артефакт на стику 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 без артефактів. Отримайте безкоштовну консультацію з налаштування освітлення під ключ: від аналізу до фінальної оптимізації.