Налаштування системи occlusion culling для приховання невидимої графіки

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

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

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

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Налаштування системи occlusion culling для приховання невидимої графіки
Середня
~3-5 робочих днів
Часті питання

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

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

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    685
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    866
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    492
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    534

Налаштування системи occlusion culling для скриття невидимої графики

Occlusion culling—один з небагатьох інструментів оптимізації, який дає помітний приріст продуктивності у VR майже безкоштовно. Суть: не рендерити об'єкти, які знаходяться за іншими об'єктами та фізично не можуть бути видимі. На складних VR-сценах з кількома кімнатами або закритими просторами це скорочує кількість draw calls у 2–5 разів.

Де occlusion culling дає результат, а де непотрібний

Occlusion culling ефективний у закритих просторах з непрозорою геометрією: коридори, кімнати, будівлі, печери. Стіна між двома кімнатами—відмінний occluder. Камера дивиться в одну кімнату, все в сусідній не рендерить.

Відкриті простори, природні сцени, ландшафти—occlusion culling майже не допомагає. Коли горизонт відкритий, більшість об'єктів потрапляє у frustum та нічого їх не закриває. Здесь працює frustum culling (вже вбудований у Unity), LOD groups та portals.

У VR особливість: у гравця два ока та два frustum. Кут обзору гарнітури (100–110° при FOV Meta Quest 3) більший, ніж у стандартного монітора. Це означає, що ефективність culling трохи менша, ніж у настільних іграх з вузьким FOV—у кадр потрапляє більше об'єктів. Тим важливіше правильний bake.

Налаштування Umbra у Unity

Unity використовує Umbra як рушій occlusion culling. Налаштування через Window → Rendering → Occlusion Culling. Ключові параметри bake:

Smallest Occluder—мінімальний розмір об'єкта, який враховується як occluder. Значення за замовчуванням 5 одиниць—для VR-ігр з детализованими інтер'єрами часто потрібно знижувати до 1–2, інакше тонкі стіни та колони не стають occluder-ами. Якщо стіна товщиною 0.3 м не блокує рендер кімнати за нею—перевірте цей параметр.

Smallest Hole—розмір прохода, через який occluder «видить» геометрію за собою. Занадто мале значення—дверні проєми та вікна дають утечку, об'єкти за ними все рівно рендерять. Занадто велике—occluder ігнорує реальні просвіти.

Backface Threshold—наскільки агресивно спрощується PVS-граф. Значення 100 = максимальна агресивність (менше даних, ризик pop-in артефактів). Для VR краще 25–50: pop-in у VR помітніший, ніж на плоскому екрані.

Критично: всі статичні об'єкти-occluder повинні бути помічені як Occluder Static та Occludee Static в Inspector. Якщо хоч одна крупна стіна не помічена—дірка у culling.

Динамічні об'єкти та occlusion culling

Occlusion culling у Unity працює лише зі статичною геометрією на стороні occluder-ів. Динамічні об'єкти (вороги, предмети, частинки) не можуть бути occluder-ами—не беруть участі в bake. Але вони самі можуть culling-тися статичними occluder-ами, якщо правильно помічені як Occludee.

Для VR-ігр з великою кількістю динамічних об'єктів у закритих просторах—додатково розглядаємо Portal-based culling через користувацькі скрипти або сторонні рішення типу SECTR або Portals & Rooms у Unity. Portal culling працює з явно заданими порталами (дверні проєми) та дає більш передбачуваний результат, ніж Umbra у складних випадках.

Перевірка коректності налаштувань

Після bake—обов'язкова візуалізація через Occlusion Culling → Visualization у Scene View. Видна PVS (Potentially Visible Set) для будь-якої позиції камери: які об'єкти вважаються видимими з поточної точки.

Типовий артефакт—occluder занадто агресивно срізує геометрію на краях: гравець видить, як об'єкт з'являється з повітря при повороті голови. У VR це особливо неприємно. Виправляється збільшенням Smallest Hole або додаванням додаткових occluder-ів у перехідних зонах.

Інструмент перевірки продуктивності: Unity Frame Debugger після bake—дивимось на кількість об'єктів у Render.OpaqueGeometry для кожної позиції камери до та після culling.

Масштаб сцени Орієнтовні строки налаштування
1–3 закриті приміщення 1–2 робочих дня
Багаторівнева локація (10–20 кімнат) 3–5 робочих днів
Повний проект з ітераційним налаштуванням 1–3 тижні

Вартість визначається після аналізу сцен проекту та цільових платформ.