Оптимизация графики под VR/AR устройства

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

От иммерсивных приложений до игровых миров и 3D-сцен

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

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Оптимизация графики под VR/AR устройства
Сложная
от 3 рабочих дней до 2 недель
Часто задаваемые вопросы
Наши компетенции
Какие этапы разработки игры?
Последние работы
  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    860
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Оптимизация графики под VR/AR устройства

В VR кадр нужно рендерить дважды — для левого и правого глаза. На Quest 2 это 72 fps × 2 = 144 Draw Call-пачки в секунду. Если ваш проект не прошёл через Single Pass Instanced Rendering и у вас больше 100 batches на кадр, стереоскопическая сцена просто не уложится в тайм-слот GPU. Головная боль и тошнота у пользователей — прямое следствие dropped frames.

AR-проекты на ARCore/ARKit добавляют поверх этого захват с камеры, обработку плоскостей и occlusion mesh. Устройство уже загружено CPU-задачами трекинга до того, как ваш шейдер сделал первый вызов.

Почему стандартные советы «уменьши полигоны» не работают в XR

Снижение полигонажа — это последнее, что мы делаем. Сначала смотрим на то, что реально убивает производительность на XR-устройствах.

Overdraw в мобильном VR. На Adreno и Mali GPU overdraw стоит непропорционально дорого — тайловый рендер не любит большое количество полупрозрачных объектов поверх друг друга. Стандартные партикл-системы с Additive-блендингом на фоне HDR-скайбокса — типичный убийца frame rate на Quest. Frame Debugger в Unity покажет это мгновенно: ищем красные зоны в overdraw view.

Foveated Rendering настроен неправильно или не включён вообще. Fixed Foveated Rendering на Meta XR SDK снижает нагрузку на GPU на 15-30% без заметного ухудшения картинки — но только если правильно выбран уровень (Low/Medium/High) под конкретный контент. В динамичных сценах с быстрым движением камеры High-уровень даёт артефакты на периферии.

Single Pass Instanced не работает с кастомными шейдерами. Если в проекте есть хоть один шейдер без UNITY_VERTEX_INPUT_INSTANCE_ID и UNITY_SETUP_INSTANCE_ID, весь рендер автоматически fallback'ается в Multi Pass. Это удваивает нагрузку. Находим через XR Plug-in Management → Rendering Stats.

Как мы работаем с XR-проектами

Начинаем с профилирования на целевом железе — не в Editor, а на устройстве. RenderDoc для Android, Xcode Instruments для iOS/visionOS, OVR Metrics Tool для Meta. Эмулятор не покажет реальных задержек памяти и bandwidth.

Типичный кейс из практики. Проект под Quest 3 — архитектурная визуализация, 8 комнат, PBR-материалы. Первый билд: 45 fps в центре сцены, 28 fps при взгляде в сторону окна. Анализ через OVR Metrics Tool показал 340 Draw Calls и 4 overdraw-слоя на оконных стёклах. Решение: GPU Instancing для повторяющейся мебели (стулья × 24 → 1 Draw Call), замена стёкол с Standard Transparent на кастомный шейдер с Surface Type Opaque + альфа в клипе, включение Fixed Foveated Rendering уровня Medium. Итог: 72 fps стабильные, thermal throttling исчез.

Для AR-проектов отдельно прорабатываем occlusion — AR Foundation Environment Depth требует корректной настройки глубины в шейдерах, иначе виртуальные объекты «просвечивают» сквозь реальные поверхности.

Инструменты, которые используем:

  • Unity Profiler + Frame Debugger (GPU Usage module)
  • RenderDoc (Android Vulkan/OpenGL ES)
  • Meta Quest Developer Hub + OVR Metrics Tool
  • XR Interaction Toolkit Profiling Guidelines
  • ARM Mobile Studio (Streamline) для Adreno/Mali deep-dive

Shader Graph оптимизируем вручную — смотрим на instruction count в Preview окне, убираем лишние sample операции, переносим вычисления из Fragment в Vertex там, где допустима интерполяция.

Этапы работы над оптимизацией XR-графики

Сначала собираем билд в Release-конфигурации и снимаем baseline-метрики: fps, GPU time per frame, Draw Calls, memory footprint. Без baseline невозможно оценить результат.

Затем — аудит сцены: иерархия объектов, количество уникальных материалов, настройки освещения (статическое/динамическое), наличие real-time теней (на мобильном VR они почти всегда под запретом), LOD-группы.

После аудита готовим план оптимизации с приоритетами по impact/effort. Реализация идёт итерациями с промежуточными замерами — важно не потерять baseline и понимать, что именно дало прирост.

Финальный этап — тепловое тестирование на устройстве 20-30 минут в условиях нагрева. Thermal throttling на мобильных чипах (Snapdragon XR2) начинается раньше, чем кажется.

Масштаб задачи Ориентировочные сроки
Аудит + отчёт без правок 2–4 дня
Оптимизация одной сцены (до 500 объектов) 1–2 недели
Полный проект (5–15 сцен, кастомные шейдеры) 3–6 недель
Портирование PC VR → standalone Quest 4–8 недель

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

Частые ошибки при подготовке XR-графики

Real-time тени на мобильном VR. Cascaded Shadow Maps с 4 каскадами на Quest — это гарантированные dropped frames. Заменяем на запечённые в Lightmap или Blob Shadow (простой проектор).

Не отключён MSAA выше 4x. На тайловых GPU (Adreno) MSAA 8x ломает производительность. В XR Project Settings ставим 4x максимум, в сложных сценах — 2x.

Текстуры без Mipmap. В VR объекты могут быть на разных расстояниях от камеры одновременно. Без Mipmap GPU берёт полное разрешение для далёких объектов — bandwidth растёт без причины.

Physics Colliders сложнее необходимого. Mesh Collider на объектах интерьера там, где достаточно Box/Capsule. В VR physics tick тоже влияет на frame time.