Если коротко:
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. После этого добавляются глубина, якоря и переходы — только если они подтверждены на целевом устройстве.