Професійне налаштування динамічних тіней та відображень

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1Усі 242 послуг
Професійне налаштування динамічних тіней та відображень
Складний
~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

Динамічні тіні та відображення — найбільш ресурсомісткі частини рендер-пайплайну за GPU-час. У нашій практиці ми часто стикаємося з тим, що налаштувати їх «за замовчуванням» не вийде: кожен проект вимагає свого балансу між якістю та продуктивністю. На мобільному пристрої 2-мегапіксельний Shadow Map для одного Directional Light — це катастрофа. На десктопі відсутність Screen Space Reflections у шутері від першої особи кидається в очі одразу.

Чому налаштування динамічних тіней та відображень критично важливе?

Помилки в налаштуваннях призводять до провалу FPS budget або до відверто поганої картинки. Наші сертифіковані інженери Unity мають досвід роботи з проектами під Android, iOS, PC та консолі. Ми гарантуємо стабільний FPS після оптимізації. Зв'яжіться з нами для оцінки вашого проекту.

Динамічні тіні та відображення: де втрачається продуктивність

Shadow Casting працює через додатковий рендер-прохід — Shadow Caster Pass. Кожен об'єкт, що входить у зону видимості тіні, рендериться повторно з depth-шейдером у текстуру Shadow Map. Чим більше джерел з тінями, тим більше додаткових проходів.

Найболючіше — Spot Light або Point Light з увімкненим Shadow Casting на мобільних платформах. Point Light рендерить Shadow Map у вигляді cubemap — 6 граней, 6 рендер-проходів для одного джерела. На сцені з 5 такими джерелами це 30 додаткових рендер-проходів кожен кадр. На мобільних пристроях це не влізає в 16-ms бюджет.

Практичний підхід: залишаємо Shadow Casting тільки на Directional Light (основне спрямоване джерело), Point та Spot Lights переводимо в режим без тіней і компенсуємо їх відсутність через Blob Shadow проектор або Decal з м'якою тінню під персонажем. Гравець не помічає, що тінь «ненатуральна», якщо її форма правдоподібна.

Для Shadow Distance критично важливо виставити адекватне значення. В Unity це Quality Settings → Shadow Distance. Типова помилка — залишити дефолтні 150 одиниць для мобільного проекту з видом зверху, де дальня видимість — 30 одиниць. Все зайве за цією відстанню Unity все одно рендерить у Shadow Map, але ніколи не показує.

Shadow Cascades для Directional Light

Directional Light з одним Shadow Map без каскадів дає або детальні тіні поблизу при втраті якості вдалині, або охоплює всю дальність при низькій роздільній здатності поблизу. Shadow Cascades ділять Shadow Map на зони: ближня зона отримує високу роздільну здатність, дальня — низьку.

Для PC-проектів 4 каскади — стандарт. Для мобільних — максимум 2 каскади, а краще 1 із невеликим Shadow Distance. Розподіл каскадів (Cascade Split) за замовчуванням у Unity рівномірний, але краще працює логарифмічний: 0.05 / 0.15 / 0.35 — більша частина роздільної здатності Shadow Map йде на перші метри перед камерою, де деталізація тіні найпомітніша.

Shadow Normal Bias та Shadow Bias — параметри, які визначають, чи є «тінеакне» (shadow acne, смугасті артефакти самозатінення) або «літаючі тіні» (peter panning, тіні відірвані від об'єктів). Normal Bias 0.4, Bias 0.05 — відправна точка для більшості сцен. Для тонких об'єктів (листя, решітки) Normal Bias потрібно знижувати до 0.1–0.2, інакше тінь зникає повністю.

Відображення: Screen Space vs Probe-based

Screen Space Reflections (SSR) — постпроцесинговий ефект, що працює тільки з тим, що знаходиться в кадрі. Дешево та переконливо для горизонтальних поверхонь (підлога, вода), але ламається на краях екрану та не показує те, що знаходиться за камерою. В HDRP налаштовується через Volume → Screen Space Reflection, ключовий параметр — Minimum Smoothness (поверхні нижче цього значення не отримують SSR, що правильно — матові поверхні не відображають).

Reflection Probes працюють скрізь, де SSR не справляється: вертикальні поверхні, відображення стелі в підлозі, інтер'єри. Baked Reflection Probe — знімок кубічної панорами в конкретній точці простору, запечений заздалегідь. Realtime Reflection Probe перераховується під час гри.

Проблема Baked Probes — статичність. Якщо в сцені є анімовані об'єкти (прапори, вода, персонажі), вони не потрапляють у відображення. Компроміс: Realtime Probe з Refresh Mode On Awake для об'єктів, які змінюються рідко (двері, що відчиняються), та Baked для всього іншого.

Box Projection — обов'язкове налаштування для інтер'єрів. Без неї Reflection Probe поводиться як нескінченно віддалене джерело, і відображення не збігається з реальною геометрією кімнати. З Box Projection та правильно налаштованим Box Size дзеркало на стіні показуватиме коректну перспективу.

Як уникнути типових помилок при налаштуванні відображень?

З нашої практики: на проекті з ізометричним видом вимагалася річка з правдоподібними відображеннями на Android. SSR — недоступний (OpenGL ES 3.0 на цільових пристроях погано перетравлює postprocess stack). Baked Reflection Probe давав статичну картинку без неба.

Рішення: кастомний шейдер води на ShaderGraph з спотворенням UV через Normal Map (імітація хвилювання) + Reflection Probe в Realtime режимі з Refresh Mode Every Frame, але з дуже низьким Shadow Resolution (128×128) — він відображав тільки небо та горизонт. Для динамічних об'єктів (човни) додали Planar Reflection Camera — окрема камера рендерить сцену з перевернутою Y-віссю в Render Texture, яку шейдер води змішує з Reflection Probe через Fresnel-залежність. Результат виглядав переконливо при вартості одного додаткового рендер-проходу в 60% роздільній здатності.

Діагностика та інструменти

Frame Debugger розбирає Shadow Caster Pass по кожному джерелу — одразу видно, хто «жере» час. GPU Usage в Profiler показує мс на кожен рендер-прохід з Shadow Casting.

Для Reflection Probes — Rendering Debugger в режимі перегляду Reflections → Probe Volume: видно, який зонд впливає на конкретну поверхню та чи коректний Box Projection.

Метод Переваги Недоліки
Screen Space Reflections Працює швидко, добре для горизонтальних поверхонь Залежить від кадру, не показує за камерою
Baked Reflection Probes Низька вартість, працює скрізь Статично, не відображає динаміку
Realtime Reflection Probes Динамічне відображення Висока вартість, часто потребує зниження роздільної здатності

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

  • Аудит поточної сцени та виявлення проблем продуктивності
  • Вибір оптимальних параметрів тіней (Shadow Distance, Cascades, Bias)
  • Налаштування Reflection Probes з Box Projection
  • Створення кастомних шейдерів при необхідності
  • Інтеграція та профілювання
  • Документація та передача налаштувань в команду
Етап Терміни
Аналіз рендер-пайплайну та продуктивності 1–2 дні
Налаштування тіней для однієї сцени (PC/console) 1–3 дні
Налаштування тіней з оптимізацією під мобільні 3–7 днів
Reflection Probes для комплексу інтер'єрів 3–5 днів
Повний пайплайн тіней + відображень, кілька платформ 2–4 тижні
Документація та передача налаштувань включено

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

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

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