Поделиться через


OpenXR

Логотип OpenXR

OpenXR — это открытый стандарт API без роялти от Khronos, предоставляющий обработчики с собственным доступом к диапазону устройств в спектре смешанной реальности.

Вы можете разрабатывать с помощью OpenXR на устройстве HoloLens 2 или Windows Смешанная реальность иммерсивную гарнитуру VR на рабочем столе. Если у вас нет доступа к гарнитуре, можно использовать эмулятор HoloLens 2 или симулятор Windows Смешанная реальность.

Почему OpenXR?

С помощью OpenXR можно создавать подсистемы, предназначенные как для голографических устройств, таких как HoloLens 2, так и иммерсивные устройства VR, такие как гарнитуры Windows Смешанная реальность для настольных компьютеров. OpenXR позволяет писать код после переноса на широкий спектр аппаратных платформ.

API OpenXR использует загрузчик для подключения приложения непосредственно к поддержке собственной платформы гарнитуры. Конечные пользователи получают максимальную производительность и минимальную задержку, будь то использование windows Смешанная реальность или любой другой гарнитуры.

Что такое OpenXR?

API OpenXR предоставляет основные функции прогнозирования положения, времени кадров и пространственных входных данных, необходимые для создания подсистемы, которая может нацелена на голографические и иммерсивные устройства.

Чтобы узнать об API OpenXR, ознакомьтесь со спецификацией OpenXR 1.0, справочником по API и кратким справочным руководством. Дополнительные сведения см. на странице "Хронос OpenXR".

Чтобы использовать полный набор функций HoloLens 2, вы также используете расширения OpenXR для нескольких поставщиков и поставщиков. Эти функции позволяют использовать такие функции, как отслеживание рук, отслеживание глаз, пространственное сопоставление и пространственные привязки. Дополнительные сведения см. в разделе "Стратегия развития" о расширениях, которые будут поступать позже в этом году.

OpenXR не является самой подсистемой смешанной реальности. Вместо этого OpenXR позволяет обработчикам, таким как Unity и Unreal, писать переносимый код после этого, чтобы получить доступ к функциям собственной платформы голографического или иммерсивного устройства пользователя, независимо от того, какой поставщик построил такую платформу.

Дорожная карта

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

Существует три типа расширений OpenXR:

  • Расширения поставщика (например, XR_MSFT_...): включает инновации для каждого поставщика в аппаратных или программных функциях. Любой поставщик среды выполнения может в любое время представить и отправить расширение поставщика.
  • Экспериментальные расширения поставщика (например, XR_MSFTX_...): предварительные версии экспериментальных расширений поставщиков для сбора отзывов. XR_MSFTX_... расширения предназначены только для устройств разработчиков и удаляются при наличии реальных расширений. Чтобы поэкспериментировать с ними, можно включить предварительные версии расширений на устройстве разработчика.
  • Расширения между поставщиками: расширения кросс-поставщиковEXT, которые несколько компаний определяют и реализуют. Группы заинтересованных компаний могут в любое время вводить расширения EXT.
  • Официальные расширения: Официальные KHR расширения Хроноса, которые были одобрены в рамках основного выпуска спецификации. Расширения KHR охватываются той же лицензией, что и основная спецификация.

Среда выполнения OpenXR для Windows Смешанная реальность поддерживает набор MSFT и EXT расширения, которые приводят полный набор функций HoloLens 2 к приложениям OpenXR:

Область функций Доступность расширений
Системы + сеансы Базовая спецификация OpenXR 1.0:
XrInstance, , XrSystemIdXrSession
Ссылочные пространства (представление, локальный, этап) Базовая спецификация OpenXR 1.0:
XrSpace
Просмотр конфигураций (моно, стерео) Базовая спецификация OpenXR 1.0:
XrView...
Время смены цепочки кадров + Базовая спецификация OpenXR 1.0:
XrSwapchain... + xrWaitFrame
Слои композиции
(проекция, четыре)
Базовая спецификация OpenXR 1.0:
XrCompositionLayer... + xrEndFrame
Входные и хаптитические данные Базовая спецификация OpenXR 1.0:
XrAction...
Интеграция Direct3D 11/12 Официальные KHR расширения выпущены:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Несвязанное эталонное пространство
(интерфейсы мирового масштаба)
MSFT расширение выпущено:
XR_MSFT_unbounded_reference_space
Пространственные привязки

MSFT расширение выпущено:
XR_MSFT_spatial_anchor

MSFT расширение, выпущенное в среде выполнения 108: (только HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Взаимодействие с рукой
(захват/цель поз, воздушный касание, захват)

Только HoloLens 2

MSFT расширение выпущено:
XR_MSFT_hand_interaction
Артикуляция рук + сетка рук

Только HoloLens 2

EXT расширение выпущено:
XR_EXT_hand_tracking

MSFT расширение выпущено:
XR_MSFT_hand_tracking_mesh

Отслеживание глаз

Только HoloLens 2

EXT расширение выпущено:
XR_EXT_eye_gaze_interaction
запись Смешанная реальность
(третья отрисовка с камеры PV)

Только HoloLens 2

MSFT расширения, выпущенные:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Профили взаимодействия контроллера движения
(Samsung Odyssey и HP Reverb G2)
MSFT расширения, выпущенные в среде выполнения 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Модели отрисовки контроллера движения MSFT расширение, выпущенное в среде выполнения 104:
XR_MSFT_controller_model
Понимание сцены (плоскости, сетки)

Только HoloLens 2

MSFT расширение, выпущенное в среде выполнения 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Маркер сцены (QR-коды)

Только HoloLens 2

MSFT расширение, выпущенное в среде выполнения 113:
XR_MSFT_scene_marker
Режимы повторного создания слоя композиции
(автоматическое планирование или репроецирование только для ориентации)
MSFT расширение, выпущенное в среде выполнения 106:
XR_MSFT_composition_layer_reprojection
Взаимодействие с другими пакетами SDK для Смешанная реальность
(например, QR)
MSFT расширение выпущено:
XR_MSFT_spatial_graph_bridge
Взаимодействие с API UWP CoreWindow
(например, для клавиатуры или мыши)
MSFT расширение, выпущенное в среде выполнения 103:
XR_MSFT_holographic_window_attachment
Взаимодействие с устаревшими СМЕШАННАЯ РЕАЛЬНОСТЬ API WinRT
(например, SpatialAnchorTransferManager))

MSFT расширение, выпущенное в среде выполнения 105:
XR_MSFT_perception_anchor_interop

Другие расширения между поставщиками

Официальные KHR расширения выпущены:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT расширения, выпущенные:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Хотя некоторые из этих расширений могут начинаться как расширения, относящиеся MSFT к поставщику, корпорация Майкрософт и другие поставщики среды выполнения OpenXR работают вместе для разработки кросс-поставщиков EXT или KHR расширений для многих из этих областей функций. Расширения кросс-поставщиков делают код, который вы пишете для этих функций, переносимых между поставщиками среды выполнения, как и в базовой спецификации.

Где можно использовать OpenXR?

Снимок экрана: Minecraft, который играет пользователь, одетый в гарнитуру смешанной реальности

Новый модуль Render Engine Minecraft создал поддержку виртуальной реальности для настольных компьютеров с помощью OpenXR!

Корпорация Майкрософт работает с Unity и Epic Games, чтобы гарантировать, что будущее смешанной реальности открыто, а не только для HoloLens 2, но и в полной ширине PC VR, включая новую гарнитуру Hp Reverb G2. OpenXR обеспечивает поддержку виртуальной реальности кросс-поставщиков для доставки основных названий сегодня, таких как Minecraft и Microsoft Flight Simulator! Дополнительные сведения о разработке для HoloLens (1-го поколения) см. в заметках о выпуске.

Чтобы узнать, как приступить к работе с OpenXR в Unity, Unreal Engine или собственном ядре, ознакомьтесь с ним!

OpenXR в Unity

Текущая рекомендуемая конфигурация Unity для HoloLens 2 и Windows Смешанная реальность — это Unity 2020.3 LTS с подключаемым модулем OpenXR Смешанная реальность. Этот подключаемый модуль включает поддержку расширений OpenXR, которые освещают все возможности гарнитур HoloLens 2 и Windows Смешанная реальность, включая отслеживание рук и глаз, пространственные привязки и контроллеры HP Reverb G2. MRTK-Unity поддерживает OpenXR с MRTK 2.7. Дополнительные сведения о начале работы с Unity 2020 и OpenXR см. в разделе "Выбор версии Unity" и подключаемого модуля XR.

Если вы разрабатываете для HoloLens (1-го поколения), необходимо продолжить использование Unity 2019.4 LTS с устаревшей серверной частью API WinRT. Если вы нацелены на новый контроллер HP Reverb G2 в приложении Unity 2019, ознакомьтесь с нашими документами по входным данным HP Reverb G2.

Начиная с Unity 2021.3 LTS, OpenXR является единственной поддерживаемой серверной частью Unity для целевых гарнитур HoloLens 2 и Windows Смешанная реальность.

OpenXR в Unreal Engine

Unreal Engine 4.23 был первым основным выпуском игрового двигателя для отправки предварительной версии поддержки OpenXR 1.0! Теперь в Unreal Engine 4.26 поддержка HoloLens 2, Windows Смешанная реальность и других гарнитур виртуальной реальности для настольных компьютеров доступна через встроенную поддержку OpenXR в Unreal Engine. Unreal Engine 4.26 также поддерживает подключаемый модуль расширения OpenXR Корпорации Майкрософт. Это обеспечивает взаимодействие с рукой и поддержку контроллера HP Reverb G2, осветив полный набор функций HoloLens 2 и гарнитур Windows Смешанная реальность. Unreal Engine 4.26 доступен сегодня на платформе Epic Games Launcher, где MRTK-Unreal 0.12 поддерживает проекты OpenXR.

OpenXR для собственной разработки

Вы можете разрабатывать с помощью OpenXR на устройстве HoloLens 2 или Windows Смешанная реальность иммерсивную гарнитуру VR на рабочем столе. Если у вас нет доступа к гарнитуре, можно использовать эмулятор HoloLens 2 или симулятор Windows Смешанная реальность.

Чтобы начать разработку приложений OpenXR для гарнитур HoloLens 2 или Windows Смешанная реальность VR, узнайте, как приступить к разработке OpenXR.

Чтобы просмотреть все основные компоненты API OpenXR, а также примеры реальных приложений с помощью OpenXR сегодня, ознакомьтесь с этим 60-минутным пошаговом видео:

См. также