Настройка системы 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. Угол обзора headset (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 недели

Стоимость определяется после анализа сцен проекта и целевых платформ.