OpenXR Spatial Containers — правила 3D-мультизадачности
OpenXR spatial containers позволяют нескольким XR-приложениям использовать управляемое системой 3D-пространство с ограниченным и иммерсивным режимами. Android XR планирует поддержку расширений.
Автор vrBlogs
· Чтение: 2 мин. · Источник: Road to VR

OpenXR spatial containers определяют управляемое системой пространство, где несколько 3D-приложений могут работать одновременно. Группа Khronos ратифицировала два расширения 19 октября и выпустила их для кроссплатформенной XR-мультизадачности. Google заявила, что Android XR будет их поддерживать.
Как работают OpenXR spatial containers
Khronos описывает spatial container как управляемое системой пространство для XR-контента, похоже на то, как окно рабочего стола содержит 2D-приложение. Модель позволяет приложению открывать один или несколько контейнеров, оставляя размещение и связанные с ним системные элементы управления на усмотрение runtime.
Два расширения — это XR_EXT_spatial_container и XR_EXT_spatial_container_self_rendering. Первое позволяет приложениям создавать и управлять контейнерами. Второе позволяет приложениям отрисовывать их через слои композиции OpenXR.
- Система контролирует, где находится каждый контейнер.
- Пользователи могут размещать контент вокруг них или сделать его следующим за ними при движении.
- Контейнеры можно показывать или скрывать.
- Контейнер можно выбрать для ввода.
- Каждый контейнер может переключаться между ограниченным режимом для мультизадачности и иммерсивным режимом, заполняющим поле зрения.
Khronos говорит, что поставщики runtime и движков работали над функцией 18 месяцев. Рабочая группа также разрабатывает расширения, которые позволяют приложениям использовать предоставляемый системой рендерер, оптимизированный под каждое устройство. Khronos ожидает, что внедрения начнут развёртываться в 2026 году.
Обновление (2026-11-01): VR.org News сообщает, что оба расширения вошли в реестр OpenXR со спецификацией версии 1.1.63 1 сентября 2026 года. VR.org News также сообщает, что OpenXR SDK 1.1.65, выпущенный 16 октября, добавил пример кода spatial container, записи манифеста Android и параметр командной строки в hello_xr. Пример создаёт до трёх контейнеров и может переключать третий контейнер между ограниченным и иммерсивным режимами. Runtime может поддерживать только один из режимов — ограниченный или иммерсивный, а смена режимов — это асинхронные запросы, которые могут быть отклонены. Интеграция spatial container в Godot была объединена под milestone 4.8 и включена в Godot 4.8 beta 1. На момент публикации Monado не имела поддержки spatial container на основной ветке.
Компании и платформы
Объявление Khronos включает заявления от Google, Meta, PICO, Unity, Varjo, Collabora и команды Godot XR. Jared Finder из Google заявил, что Google «рад внедрить поддержку Spatial Container в Android XR». Команда Godot сказала, что её следующий релиз будет поддерживать эту функцию.
Заявление Meta поддерживает общую идею, но не содержит явного обязательства по поддержке spatial container на Quest. Поддержка Android XR планируется, а поддержка на других платформах зависит от реализации каждого runtime. Пример OpenXR SDK и Godot 4.8 beta показывают прогресс разработки, но они не гарантируют поддержку на каждом runtime.
Как OpenXR-мультизадачность может всё изменить
Road to VR сравнивает этот подход с Shared Space на Apple Vision Pro, где несколько 3D-приложений могут располагаться рядом. Quest в настоящий момент запускает одно иммерсивное приложение одновременно с 2D-окнами и системными меню.
Единый стандарт позволяет разработчикам один раз создать 3D-приложение для мультизадачности на Quest, Android XR, PICO и PC VR вместо написания отдельной версии для каждой платформы. Общая модель охватывает создание контейнеров, размещение, видимость, выбор ввода и переходы между ограниченным и иммерсивным представлением.
visionOS от Apple и PS VR2 не поддерживают OpenXR, поэтому они находятся вне этого проекта. Для поддерживаемых runtime фактическая доступность всё ещё зависит от реализации, включая поддерживаемые режимы контейнеров и успешность асинхронных запросов на смену режима.
Вам понравился этот материал?
Поставьте отметку «Нравится», чтобы сообщить редакторам, или сохраните материал, чтобы прочитать позже.



Комментарии
Войдите, чтобы присоединиться к разговору.
ВойтиКомментариев пока нет. Начните разговор.
·