Compartir a través de


OpenXR

Logotipo de OpenXR

OpenXR es un estándar abierto de API libre de regalías de Khronos, lo que proporciona motores con acceso nativo a una gama de dispositivos en todo el espectro de realidad mixta.

Puede desarrollar con OpenXR en un casco de Realidad virtual envolvente de HoloLens 2 o Windows Mixed Reality en el escritorio. Si no tiene acceso a un casco, puede usar el emulador de HoloLens 2 o el simulador de Windows Mixed Reality en su lugar.

¿Por qué OpenXR?

Con OpenXR, puede crear motores que tienen como destino dispositivos holográficos, como HoloLens 2 y dispositivos vr envolventes, como cascos de Windows Mixed Reality para equipos de escritorio. OpenXR le permite escribir código una vez que se pueda transferir a través de una amplia gama de plataformas de hardware.

La API de OpenXR usa un cargador para conectar la aplicación directamente a la compatibilidad con la plataforma nativa de los auriculares. Los usuarios finales obtienen un rendimiento máximo y una latencia mínima, tanto si usan Windows Mixed Reality como cualquier otro casco.

¿Qué es OpenXR?

La API de OpenXR proporciona la predicción de posición principal, el tiempo de fotogramas y la funcionalidad de entrada espacial que necesita para crear un motor que pueda tener como destino dispositivos holográficos y envolventes.

Para obtener información sobre la API de OpenXR, consulte la especificación de OpenXR 1.0, la referencia de API y la guía de referencia rápida. Para obtener más información, consulte la página Khronos OpenXR.

Para tener como destino el conjunto de características completo de HoloLens 2, también usa extensiones openXR específicas de varios proveedores y proveedores. Estas habilitan características como el seguimiento de manos articulado, el seguimiento ocular, la asignación espacial y los anclajes espaciales. Para obtener más información, consulte la sección Hoja de ruta sobre las extensiones que vienen más adelante este año.

OpenXR no es un motor de realidad mixta. En su lugar, OpenXR permite que los motores como Unity y Unreal escriban código portátil una vez que puedan acceder a las características de la plataforma nativa del dispositivo holográfico o inmersivo del usuario, sea cual sea el proveedor que haya creado esa plataforma.

Plan de desarrollo

La especificación OpenXR define un mecanismo de extensión que permite a los implementadores en tiempo de ejecución exponer otras funciones más allá de las características principales definidas en la especificación base de OpenXR 1.0.

Hay tres tipos de extensiones de OpenXR:

  • Extensiones de proveedor (por ejemplo, XR_MSFT_...): habilita la innovación por proveedor en las características de hardware o software. Cualquier proveedor en tiempo de ejecución puede introducir y enviar una extensión de proveedor en cualquier momento.
  • Extensiones de proveedor experimentales (por ejemplo, XR_MSFTX_...): extensiones de proveedor experimentales en versión preliminar para recopilar comentarios. XR_MSFTX_... las extensiones son solo para dispositivos de desarrollador y se quitan cuando se incluye la extensión real. Para experimentar con ellos, puede habilitar extensiones de vista previa en el dispositivo para desarrolladores.
  • Extensiones entre proveedores EXT : extensiones entre proveedores que definen e implementan varias empresas. Los grupos de empresas interesadas pueden introducir extensiones EXT en cualquier momento.
  • Extensiones oficiales KHR : extensiones oficiales khronos ratificadas como parte de una versión de especificación básica. Las extensiones KHR están cubiertas por la misma licencia que la propia especificación principal.

El entorno de ejecución de OpenXR de Windows Mixed Reality admite un conjunto de MSFT extensiones y EXT que aporta todo el conjunto de características de HoloLens 2 a las aplicaciones de OpenXR:

Área de características Disponibilidad de extensiones
Sistemas y sesiones Especificación de núcleo de OpenXR 1.0:
XrInstance, , XrSystemId, XrSession
Espacios de referencia (vista, local, fase) Especificación de núcleo de OpenXR 1.0:
XrSpace
Ver configuraciones (mono, estéreo) Especificación de núcleo de OpenXR 1.0:
XrView...
Intervalos de fotogramas + de cadenas de intercambio Especificación de núcleo de OpenXR 1.0:
XrSwapchain... + xrWaitFrame
Capas de composición
(proyección, quad)
Especificación de núcleo de OpenXR 1.0:
XrCompositionLayer... + xrEndFrame
Entrada y hápticas Especificación de núcleo de OpenXR 1.0:
XrAction...
Integración de Direct3D 11/12 Extensiones oficiales KHR publicadas:
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Espacio de referencia sin enlazar
(experiencias a escala mundial)
MSFT extensión publicada:
XR_MSFT_unbounded_reference_space
Delimitadores espaciales

MSFT extensión publicada:
XR_MSFT_spatial_anchor

MSFT extensión publicada en tiempo de ejecución 108:(Solo HoloLens 2)
XR_MSFT_spatial_anchor_persistence

Interacción con la mano
(posición de agarre/objetivo, pulsación de aire, agarre)

Solo HoloLens 2

MSFT extensión publicada:
XR_MSFT_hand_interaction
Articulación de mano + malla de mano

Solo HoloLens 2

EXT extensión publicada:
XR_EXT_hand_tracking

MSFT extensión publicada:
XR_MSFT_hand_tracking_mesh

Mirada con ojo

Solo HoloLens 2

EXT extensión publicada:
XR_EXT_eye_gaze_interaction
Captura de realidad mixta
(tercera representación de la cámara PV)

Solo HoloLens 2

MSFT extensiones publicadas:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Perfiles de interacción del controlador de movimiento
(SamsungDisea y HP Reverb G2)
MSFT extensiones publicadas en tiempo de ejecución 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modelos de representación del controlador de movimiento MSFT extensión publicada en tiempo de ejecución 104:
XR_MSFT_controller_model
Comprensión de la escena (planos, mallas)

Solo HoloLens 2

MSFT extensión publicada en tiempo de ejecución 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Marcador de escena (códigos QR)

Solo HoloLens 2

MSFT extensión publicada en tiempo de ejecución 113:
XR_MSFT_scene_marker
Modos de reproyecto de capa de composición
(reproyecto de solo orientación o planar automático)
MSFT extensión publicada en tiempo de ejecución 106:
XR_MSFT_composition_layer_reprojection
Interoperabilidad con otros SDK de realidad mixta
(por ejemplo, QR)
MSFT extensión publicada:
XR_MSFT_spatial_graph_bridge
Interoperabilidad con UWP CoreWindow API
(por ejemplo, para teclado o mouse)
MSFT extensión publicada en tiempo de ejecución 103:
XR_MSFT_holographic_window_attachment
Interoperabilidad con las API heredadas de WinRT de Mixed Reality
(por ejemplo, SpatialAnchorTransferManager))

MSFT extensión publicada en tiempo de ejecución 105:
XR_MSFT_perception_anchor_interop

Otras extensiones entre proveedores

Extensiones oficiales KHR publicadas:
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT extensiones publicadas:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Aunque algunas de estas extensiones pueden empezar como extensiones específicas MSFT del proveedor, Microsoft y otros proveedores en tiempo de ejecución de OpenXR trabajan juntos para diseñar EXT extensiones o KHR proveedores cruzados para muchas de estas áreas de características. Las extensiones entre proveedores hacen que el código que escriba para esas características sea portátil entre proveedores en tiempo de ejecución, al igual que con la especificación principal.

¿Dónde puede usar OpenXR?

Captura de pantalla de Minecraft jugada por un usuario con un casco de realidad mixta

El nuevo motor RenderDragon de Minecraft ha creado su compatibilidad con VR de escritorio con OpenXR!

Microsoft ha estado trabajando con Unity y Epic Games para asegurarse de que el futuro de la realidad mixta está abierto, no solo para HoloLens 2, sino en toda la amplitud de LA VR de PC, incluido el nuevo casco Reverb G2 de HP. OpenXR potencia la compatibilidad de VR entre proveedores para los principales títulos que se envían hoy, como Minecraft y Microsoft Flight Simulator! Para obtener más información sobre el desarrollo para HoloLens (1.ª generación), consulte las notas de la versión.

Para obtener información sobre cómo puede empezar a trabajar con OpenXR en Unity, Unreal Engine o su propio motor, consulte!

OpenXR en Unity

La configuración de Unity recomendada actual de Microsoft para el desarrollo de HoloLens 2 y Windows Mixed Reality es Unity 2020.3 LTS con el complemento OpenXR de Mixed Reality. Este complemento incluye compatibilidad con las extensiones de OpenXR que iluminan todas las funcionalidades de los cascos holoLens 2 y Windows Mixed Reality, incluidos el seguimiento manual/ocular, los anclajes espaciales y los controladores HP Reverb G2. MRTK-Unity admite OpenXR a partir de MRTK 2.7. Para obtener más información sobre cómo empezar a usar Unity 2020 y OpenXR, consulte Elección de una versión de Unity y un complemento XR.

Si está desarrollando para HoloLens (1.ª generación), debe seguir usando Unity 2019.4 LTS con el back-end de api de WinRT heredado. Si tiene como destino el nuevo controlador HP Reverb G2 en una aplicación de Unity 2019, consulte nuestros documentos de entrada de HP Reverb G2.

A partir de Unity 2021.3 LTS, OpenXR es el único back-end de Unity compatible con holoLens 2 y cascos de Windows Mixed Reality.

OpenXR en Unreal Engine

Unreal Engine 4.23 fue la primera versión principal del motor de juegos para enviar compatibilidad con la versión preliminar de OpenXR 1.0! Ahora en Unreal Engine 4.26, la compatibilidad con HoloLens 2, Windows Mixed Reality y otros cascos vr de escritorio está disponible a través de la compatibilidad integrada de OpenXR de Unreal Engine. Unreal Engine 4.26 también admite el complemento de extensión OpenXR de Microsoft. Esto permite la interacción con la mano y la compatibilidad con el controlador HP Reverb G2, iluminando el conjunto completo de características de holoLens 2 y cascos de Windows Mixed Reality. Unreal Engine 4.26 está disponible en la actualidad en epic games Launcher, con MRTK-Unreal 0.12 que admite proyectos OpenXR.

OpenXR para el desarrollo nativo

Puede desarrollar con OpenXR en un casco de Realidad virtual envolvente de HoloLens 2 o Windows Mixed Reality en el escritorio. Si no tiene acceso a un casco, puede usar el emulador de HoloLens 2 o el simulador de Windows Mixed Reality en su lugar.

Para empezar a desarrollar aplicaciones OpenXR para cascos de Realidad virtual de HoloLens 2 o Windows Mixed Reality, consulte cómo empezar a trabajar con el desarrollo de OpenXR.

Para realizar un recorrido por todos los componentes principales de la API de OpenXR, junto con ejemplos de las aplicaciones del mundo real que usan OpenXR hoy, consulte este vídeo de tutorial de 60 minutos:

Consulte también