Включение адаптивной синхронизации колебания кадров в UE 4.x
Обновлено: 17 апр 2026 г.
Руководство для устаревших версий: Meta прекратила поддержку Unreal Engine 4.27 в
Meta XR SDK версии 62, и дальнейшие обновления не планируются. Синхронизация колебаний была функцией эпохи VrApi. С 31 августа 2022 года библиотека VrApi больше не поддерживается. В текущей среде выполнения OpenXR синхронизация кадров управляется автоматически. Информация на этой странице сохраняется для команд, поддерживающих существующие проекты UE4.
Синхронизация колебаний — это техника синхронизации колебаний кадров, которая помогает адаптивно снизить задержку. Она доступна для приложений Meta Quest и Meta Quest 2 в качестве опции в Unreal Engine Integration версии 23 и более поздних версиях.
В следующем разделе описывается, как работает синхронизация колебаний.
Подробнее о синхронизации колебаний
Синхронизация колебаний предлагает альтернативу режиму фиксированной задержки для управления синхронизацией кадров в приложениях Meta Quest. В режиме фиксации с задержкой кадры компонуются как можно раньше, чтобы избежать пропуска текущего кадра и необходимости повторного использования устаревшего кадра. Устаревшие кадры могут негативно отразиться на качестве взаимодействия пользователя.
В отличие от фиксированной задержки, синхронизация колебаний адаптирует синхронизацию кадров в зависимости от рабочей нагрузки приложения. Ее цель — завершить рендеринг кадра непосредственно перед тем, как это понадобится компоновщику, что позволит сократить задержку рендеринга без потери кадров.
На следующем изображении показана разница между фиксированной задержкой и включенной функцией синхронизации колебаний для обычного многопоточного VR-приложения.
При включении синхронизации колебаний обратите внимание на следующее:
- Без дополнительного воздействия на производительность — синхронизация колебаний не увеличивает требования к производительности приложения.
- Чувствительность к колебаниям рабочей нагрузки — если рабочая нагрузка приложения часто колеблется или резко возрастает, синхронизация колебаний может вызвать появление большего количества устаревших кадров.
- Дополняет фиксацию с задержкой — синхронизация колебаний и фиксация с задержкой часто хорошо работают вместе.
- Режим дополнительной задержки — если одновременно включены режим дополнительной задержки и синхронизация колебаний, режим дополнительной задержки будет игнорироваться.
Включение синхронизации колебаний
Примечание. Если вы не подписаны на частный репозиторий EpicGames/UnrealEngine и не вошли на GitHub, то при нажатии на ссылку возникнет ошибка 404. Подробнее см. в статье
Справочник по совместимости версий.
Включение синхронизации колебаний:
- Откройте свой проект в Unreal Engine.
- Нажмите Edit > Project Settings (Редактировать > Настройки проекта), а затем перейдите к Plugins > OculusVR (Плагины > OculusVR).
- В разделе Mobile (Мобильные устройства), установите флажок Phase Sync (Синхронизация колебаний).
Тестирование синхронизации колебаний
В приведенных ниже инструкциях по тестированию используется VrApi, который был упразднен 31 августа 2022 года. В текущей среде выполнения OpenXR adb logcat -s VrApi и adb shell setprop debug.oculus.phaseSync не имеют значения. Эти инструкции применяются только к приложениям, работающим на устаревшей среде выполнения VrApi.
После включения синхронизации колебаний в вашем приложении вы можете проверить, активна ли синхронизация, и посмотреть в журналах Logcat, насколько удалось уменьшить задержку.
- Если синхронизация колебаний не активна, значение Lat равно либо Lat=0, либо Lat=1, что указывает на режим дополнительной задержки.
- Если синхронизация колебаний активна, значение Lat равно Lat=-1, что указывает на то, что задержка управляется динамически.
Значение Prd указывает задержку рендеринга, измеренную во время выполнения. Чтобы рассчитать, сколько задержек удалось сохранить с синхронизацией колебаний, сравните значения Prd при активной и неактивной синхронизации колебаний. Например, если Prd с синхронизацией колебаний составляет 35 мс, а Prd без нее — 45 мс, то благодаря синхронизации колебаний удалось снизить задержку на 10 мс.
Чтобы было проще сравнивать результативность при использовании синхронизации колебаний и без нее, вы можете переключать значения с помощью команды adb shell setprop. После изменения setprop необходимо перезапустить приложение, чтобы изменения вступили в силу.
- Выключить:
adb shell setprop debug.oculus.phaseSync 0 - Включить:
adb shell setprop debug.oculus.phaseSync 1
В этих ресурсах может быть устаревший контент, а также могут упоминаться API и продукты, поддержка которых прекращена.