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

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

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

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

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

Динамічні тіні та відображення — найбільш ресурсомісткі частини рендер-пайплайну за 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 тижні
Документація та передача налаштувань включено

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