Если коротко:

Passthrough показывает изображение с камер гарнитуры вместе с виртуальными объектами, а композицией управляет системный runtime. В Unreal Engine функцию подключают через OpenXR-расширение или SDK целевого устройства, учитывая разрешения и режимы слоёв. Сцену проверяют на реальной гарнитуре, особенно границы, глубину, окклюзию и поведение при потере данных камеры.

Unreal Engine passthrough VR реализует через системный runtime и расширения целевого устройства.

Passthrough передаёт изображение с внешних камер гарнитуры в сцену, чтобы пользователь видел помещение вместе с виртуальными объектами. В Unreal Engine это не обычная текстура веб-камеры: runtime управляет доступом к камерам, композицией слоёв и ограничениями приватности.

Начинать MR-функцию нужно с выбора целевого устройства. Meta, VIVE и другие реализации OpenXR могут предоставлять похожий результат через разные расширения и плагины.

Сначала определите сценарий композиции

Есть три базовых варианта: passthrough служит фоном для виртуальных объектов; открывается только в маске или портале; либо постепенно заменяет виртуальную среду. Для каждого нужен свой порядок слоёв, прозрачность и логика взаимодействия.

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

Проект и плагины

Создайте рабочую VR-сцену на OpenXR и проверьте сборку без passthrough. Затем подключите рекомендованный производителем плагин, включите нужные разрешения и используйте компонент или слой из его документации. Версии Unreal Engine и SDK должны быть совместимы.

Одновременное включение нескольких конкурирующих XR-плагинов способно привести к конфликту функций. Сохраняйте минимальную конфигурацию и фиксируйте её в проектной документации.

Базовый маршрут OpenXR описан в материале OpenXR в Unreal Engine.

Слои и прозрачность

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

Проверяйте порядок непосредственно в гарнитуре. На мониторе редактора фон может быть чёрным, хотя устройство корректно композирует камеру. И наоборот, успешный preview не гарантирует работу packaged build с нужными разрешениями.

Геометрия помещения и окклюзия

Без карты глубины виртуальный объект обычно рисуется поверх реального независимо от расстояния. Это разрушает правдоподобие: виртуальный куб может перекрывать руку или стол, которые физически ближе.

Если устройство предоставляет scene mesh, depth API или якоря, их можно использовать для окклюзии и привязки. Но данные неполны и меняются при освещении. Важные действия не должны зависеть от идеально восстановленной стены.

Взаимодействие и безопасность

Passthrough снижает изоляцию, но не превращает камеры в сертифицированное средство наблюдения. Изображение может иметь задержку, искажения, ограниченный динамический диапазон и слепые зоны. Пользователь не должен выполнять опасные физические действия, ориентируясь только на видеопоток.

Покажите границы рабочей области и оставьте путь к паузе. При потере трекинга или разрешения переходите в безопасное состояние: остановите взаимодействие и дайте понятное сообщение.

Производительность

Камеры и композиция добавляют нагрузку, а MR-сцена всё равно рендерит виртуальные объекты. Измеряйте GPU и CPU на устройстве, проверяйте прозрачность и количество слоёв. Сложный полноэкранный материал поверх passthrough способен съесть выигрыш от упрощённого виртуального фона.

Для плавного перехода избегайте резкой вспышки между чёрным кадром и яркой комнатой. Анимация должна быть короткой и учитывать reduced motion там, где это применимо.

План тестирования

  • холодный запуск и повторный вход;
  • отказ пользователя в разрешении;
  • тёмная и очень светлая комната;
  • потеря трекинга и восстановление;
  • смена границы или комнаты;
  • packaged build, а не только editor preview;
  • все заявленные модели гарнитур.

Итог

Passthrough в Unreal Engine — системная XR-функция, а не фоновой видеоматериал. Надёжная реализация начинается с конкретного runtime, понятной композиции и безопасного fallback. После этого добавляются глубина, якоря и переходы — только если они подтверждены на целевом устройстве.

Поделиться:TelegramВКонтакте

Источники

  1. Meta — Passthrough in Unreal
  2. VIVE OpenXR — Passthrough
  3. Epic Developer Community — passthrough transition