OpenXROpenXR

OpenXR logo

OpenXR es un estándar de API abierto sin regalías de Khronos,que proporciona a los motores acceso nativo a una variedad de dispositivos en el espectro de realidad mixta.OpenXR is an open royalty-free API standard from Khronos, providing engines with native access to a range of devices across the mixed reality spectrum.

Puede desarrollar mediante OpenXR en un HoloLens 2 o Windows Mixed Reality envolvente de REALIDAD virtual en el escritorio.You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive VR headset on the desktop. Si no tiene acceso a un casco, puede usar el emulador de HoloLens 2 o el simulador de Windows Mixed Reality en su lugar.If you don't have access to a headset, you can use the HoloLens 2 Emulator or the Windows Mixed Reality Simulator instead.

¿Por qué OpenXR?Why OpenXR?

Con OpenXR, puede crear motores destinados a dispositivos holográficos, como HoloLens 2, y dispositivos vr envolventes, como cascos de Windows Mixed Reality para equipos de escritorio.With OpenXR, you can build engines that target both holographic devices, like HoloLens 2, and immersive VR devices, like Windows Mixed Reality headsets for desktop PCs. OpenXR le permite escribir código una vez que se pueda transportar a través de una amplia gama de plataformas de hardware.OpenXR lets you write code once that's then portable across a wide range of hardware platforms.

La API de OpenXR usa un cargador para conectar la aplicación directamente a la compatibilidad nativa de la plataforma del casco.The OpenXR API uses a loader to connect your application directly to your headset's native platform support. Los usuarios finales obtienen el máximo rendimiento y la latencia mínima, tanto si usan un Windows Mixed Reality como cualquier otro casco.End users get maximum performance and minimum latency, whether they're using a Windows Mixed Reality or any other headset.

¿Qué es OpenXR?What is OpenXR?

La API de OpenXR proporciona la predicción de posición principal, el tiempo de fotogramas y la funcionalidad de entrada espacial que necesitará para crear un motor que pueda tener como destino dispositivos holográficos y envolventes.The OpenXR API provides the core pose prediction, frame timing, and spatial input functionality you'll need to build an engine that can target both holographic and immersive devices.

Para obtener información sobre la API de OpenXR, consulte la especificación de OpenXR 1.0, la referencia de APIy la guía de referencia rápida.To learn about the OpenXR API, check out the OpenXR 1.0 specification, API reference, and quick reference guide. Para obtener más información, vea la página de OpenXR de Khronos.For more information, see the Khronos OpenXR page.

Para tener como destino el conjunto de características completo de HoloLens 2, también usará extensiones openXR específicas del proveedor y entre proveedores que permiten características adicionales más allá del núcleo de OpenXR 1.0, como el seguimiento de manos articulados, el seguimiento de los ojos, la asignación espacial y los anclajes espaciales.To target the full feature set of HoloLens 2, you'll also use cross-vendor and vendor-specific OpenXR extensions that enable additional features beyond the OpenXR 1.0 core, such as articulated hand tracking, eye tracking, spatial mapping, and spatial anchors. Para obtener más información, consulte la sección Mapa de ruta a continuación sobre las extensiones que se publicarán más adelante este año.For more information, see the Roadmap section below on the extensions coming later this year.

OpenXR no es en sí mismo un motor de realidad mixta.OpenXR isn't itself a mixed reality engine. En su lugar, OpenXR permite que motores como Unity y Unreal escriban código portátil una vez que puedan acceder a las características nativas de la plataforma del dispositivo holográfico o inmersivo del usuario, sea cual sea el proveedor que haya creado esa plataforma.Instead, OpenXR enables engines like Unity and Unreal to write portable code once that can then access the native platform features of the user's holographic or immersive device, whatever vendor built that platform.

Plan de desarrolloRoadmap

La especificación openXR define un mecanismo de extensión que permite a los implementadores en tiempo de ejecución exponer funcionalidades adicionales más allá de las características principales definidas en la especificación base de OpenXR 1.0.The OpenXR specification defines an extension mechanism that enables runtime implementers to expose additional functionality beyond the core features defined in the base OpenXR 1.0 specification.

Hay tres tipos de extensiones openXR:There are three kinds of OpenXR extensions:

  • Extensiones de proveedor (por ejemplo, MSFT ): habilita la innovación por proveedor en características de hardware o software.Vendor extensions (for example, MSFT): Enables per-vendor innovation in hardware or software features. Cualquier proveedor en tiempo de ejecución puede introducir y enviar una extensión de proveedor en cualquier momento.Any runtime vendor can introduce and ship a vendor extension at any time.
    • Extensiones de proveedor experimentales (por ejemplo, MSFT_preview ): las extensiones de proveedor experimentales se están visualizando para recopilar comentarios.Experimental vendor extensions (for example, MSFT_preview): Experimental vendor extensions being previewed to gather feedback. MSFT_preview Las extensiones son solo para dispositivos de desarrollador y se quitarán cuando se distribuye la extensión real.MSFT_preview extensions are for developer devices only and will be removed when the real extension ships. Para experimentar con ellas, puede habilitar las extensiones en versión preliminar en el dispositivo para desarrolladores.To experiment with them, you can enable preview extensions on your developer device.
  • Extensiones entre EXT proveedores: extensiones entre proveedores que varias empresas definen e implementan.Cross-vendor EXT extensions: Cross-vendor extensions that multiple companies define and implement. Los grupos de empresas interesadas pueden introducir extensiones EXT en cualquier momento.Groups of interested companies can introduce EXT extensions at any time.
  • Extensiones KHR oficiales: extensiones oficiales de Khronos que se han publicado como parte de una versión de especificación principal.Official KHR extensions: Official Khronos extensions ratified as part of a core spec release. Las extensiones DEER están cubiertas por la misma licencia que la propia especificación principal.KHR extensions are covered by the same license as the core spec itself.

El Windows Mixed Reality openxr runtime admite un conjunto de extensiones y que aporta el conjunto completo de características HoloLens 2 a MSFT EXT las aplicaciones OpenXR:The Windows Mixed Reality OpenXR Runtime supports a set of MSFT and EXT extensions that brings the full set of HoloLens 2 features to OpenXR applications:

Área de funciónFeature area Disponibilidad de extensionesExtension availability
Sistemas y sesionesSystems + sessions Especificación de núcleo de OpenXR 1.0:OpenXR 1.0 core spec:
XrInstance, XrSystemId, XrSessionXrInstance, XrSystemId, XrSession
Espacios de referencia (vista, local, fase)Reference spaces (view, local, stage) Especificación de núcleo de OpenXR 1.0:OpenXR 1.0 core spec:
XrSpace
Ver configuraciones (mono, estéreo)View configurations (mono, stereo) Especificación de núcleo de OpenXR 1.0:OpenXR 1.0 core spec:
XrView...
Cadenas de intercambio + tiempo de fotogramasSwapchains + frame timing Especificación de núcleo de OpenXR 1.0:OpenXR 1.0 core spec:
XrSwapchain... + xrWaitFrame
Capas de composiciónComposition layers
(proyección, quad)(projection, quad)
Especificación de núcleo de OpenXR 1.0:OpenXR 1.0 core spec:
XrCompositionLayer... + xrEndFrame
Entrada y hápticosInput and haptics Especificación de núcleo de OpenXR 1.0:OpenXR 1.0 core spec:
XrAction...
Integración de Direct3D 11Direct3D 11 integration Extensión KHR oficial publicada:Official KHR extension released:
XR_KHR_D3D11_enable
Integración de Direct3D 12Direct3D 12 integration Extensión KHR oficial publicada:Official KHR extension released:
XR_KHR_D3D12_enable
Espacio de referencia sin enlazar
(experiencias de escala mundial)
Unbounded reference space
(world-scale experiences)
MSFT extensión publicada:MSFT extension released:
XR_MSFT_unbounded_reference_space
Delimitadores espacialesSpatial anchors

MSFT extensión publicada:MSFT extension released:
XR_MSFT_spatial_anchor

MSFT_previewExtensión en tiempo de ejecución de versión preliminar 107:MSFT_preview extension in preview runtime 107:
XR_MSFT_spatial_anchor_persistence_preview

Interacción con la
mano (posición de control/objetivo, pulsación en el aire, agarre)
Hand interaction
(grip/aim pose, air-tap, grasp)

HoloLens 2 soloHoloLens 2 only

MSFT extensión publicada:MSFT extension released:
XR_MSFT_hand_interaction
Articulación de la mano + malla de manoHand articulation + hand mesh

HoloLens 2 soloHoloLens 2 only

EXT extensión publicada:EXT extension released:
XR_EXT_hand_tracking

MSFT extensión publicada:MSFT extension released:
XR_MSFT_hand_tracking_mesh
Mirada con ojoEye gaze

HoloLens 2 soloHoloLens 2 only

EXT extensión publicada:EXT extension released:
XR_EXT_eye_gaze_interaction
Captura de realidad mixta
(tercera representación desde la cámara PV)
Mixed Reality Capture
(third render from PV camera)

HoloLens 2 soloHoloLens 2 only

MSFT Extensiones publicadas:MSFT extensions released:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interoperabilidad con otros SDK Mixed Reality de datosInterop with other Mixed Reality SDKs
(por ejemplo, QR)(for example, QR)

MSFT extensión publicada:MSFT extension released:
XR_MSFT_spatial_graph_bridge

MSFT Extensión publicada en tiempo de ejecución 105:MSFT extension released in runtime 105:
XR_MSFT_perception_anchor_interop

Interoperabilidad con coreWindow API de UWPInterop with UWP CoreWindow API
(por ejemplo, para el teclado y el mouse)(for example, for keyboard/mouse)
MSFT Extensión publicada en tiempo de ejecución 103:MSFT extension released in runtime 103:
XR_MSFT_holographic_window_attachment
Perfiles de interacción del controlador de movimientoMotion controller interaction profiles
(Samsung Samsung Samsung y HP Reverb G2)(Samsung Odyssey and HP Reverb G2)
MSFT Extensiones publicadas en tiempo de ejecución 103:MSFT extensions released in runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modelos de representación del controlador de movimientoMotion controller render models MSFT Extensión publicada en tiempo de ejecución 104:MSFT extension released in runtime 104:
XR_MSFT_controller_model
Descripción de la escena (planos, mallas)Scene understanding (planes, meshes)

HoloLens 2 soloHoloLens 2 only

MSFT Extensión publicada en tiempo de ejecución 106:MSFT extension released in runtime 106:
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization

Modos de reproducción de la capa de composición (reproducción plana automática o solo
orientación)
Composition layer reprojection modes
(auto-planar or orientation-only reprojection)
MSFT Extensión publicada en tiempo de ejecución 106:MSFT extension released in runtime 106:
XR_MSFT_composition_layer_reprojection
Otras extensiones entre proveedoresOther cross-vendor extensions

Extensiones KHR oficiales publicadas:Official KHR extensions released:
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:EXT extensions released:
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Aunque algunas de estas extensiones pueden empezar como extensiones específicas del proveedor, Microsoft y otros proveedores en tiempo de ejecución de OpenXR trabajan conjuntamente para diseñar extensiones o entre proveedores para muchas de estas áreas de MSFT EXT KHR características.While some of these extensions may start out as vendor-specific MSFT extensions, Microsoft and other OpenXR runtime vendors are working together to design cross-vendor EXT or KHR extensions for many of these feature areas. Las extensiones entre proveedores harán que el código que escriba para esas características sea portátil entre proveedores en tiempo de ejecución, como con la especificación principal.Cross-vendor extensions will make the code you write for those features portable across runtime vendors, as with the core specification.

Introducción a OpenXRGetting started with OpenXR

Captura de pantalla de la interpretación de Quesada por un usuario con un casco de realidad mixta

El nuevo motor Render Creative de Chips ha creado su compatibilidad de realidad virtual de escritorio con OpenXR.Minecraft's new RenderDragon engine has built its desktop VR support using 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 gama de PC VR, incluido el nuevo casco Reverb G2de HP.Microsoft has been working with Unity and Epic Games to ensure the future of mixed reality is open, not just for HoloLens 2, but across the full breadth of PC VR, including HP’s new Reverb G2 headset. OpenXR potencia la compatibilidad de realidad virtual entre proveedores para los títulos principales que se entregan hoy en día, como , Por ejemplo, y Simulador de vuelos de Microsoft.OpenXR powers the cross-vendor VR support for major titles shipping today, such as Minecraft and Microsoft Flight Simulator! Para obtener más información sobre el desarrollo para HoloLens (1.ª generación), vea las notas de la versión.For more information on developing for HoloLens (1st gen), see the release notes.

Para obtener información sobre cómo empezar a trabajar con OpenXR en Unity, Unreal Engine o su propio motor, siga leyendo.To learn how you can get started with OpenXR in Unity, Unreal Engine or your own engine, read on!

OpenXR en UnityOpenXR in Unity

La configuración de Unity recomendada actualmente de Microsoft para el desarrollo de HoloLens 2 y Windows Mixed Reality es Unity 2020.3 LTS con el complemento openXR Mixed Reality más reciente.Microsoft’s current recommended Unity configuration for HoloLens 2 and Windows Mixed Reality development is Unity 2020.3 LTS with the latest Mixed Reality OpenXR plugin. Este complemento incluye compatibilidad con las extensiones OpenXR que encienden todas las funcionalidades de los cascos HoloLens 2y Windows Mixed Reality, incluido el seguimiento de manos y ojos, anclajes espaciales y controladores HP Reverb G2.This plugin includes support for the OpenXR extensions that light up the full capabilities of HoloLens 2 and Windows Mixed Reality headsets, including hand/eye tracking, spatial anchors and HP Reverb G2 controllers. MRTK-Unity admite OpenXR a partir de MRTK 2.7.MRTK-Unity supports OpenXR as of MRTK 2.7. Para obtener más información sobre cómo empezar a trabajar con Unity 2020 y OpenXR, consulte Elección de una versión de Unity.For more information about getting started with Unity 2020 and OpenXR, see Choosing a Unity version.

Si vas a desarrollar para HoloLens (1ª generación), tendrás que seguir usando Unity 2019.4 LTS con el back-end heredado de la API de WinRT.If you are developing for HoloLens (1st gen), you'll need to continue using Unity 2019.4 LTS with the legacy WinRT API backend. 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.If you’re targeting the new HP Reverb G2 controller in a Unity 2019 app, see our HP Reverb G2 input docs.

A partir de Unity 2021.2, OpenXR será el único back-end de Unity compatible para dirigirse a HoloLens 2 y Windows Mixed Reality cascos.Starting in Unity 2021.2, OpenXR will be the only supported Unity backend for targeting HoloLens 2 and Windows Mixed Reality headsets.

OpenXR en Unreal EngineOpenXR in Unreal Engine

Unreal Engine 4.23 fue la primera versión principal del motor de juegos en enviar compatibilidad con la versión preliminar para OpenXR 1.0.Unreal Engine 4.23 was the first major game engine release to ship preview support for 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.Now in Unreal Engine 4.26, support for HoloLens 2, Windows Mixed Reality and other desktop VR headsets is available through Unreal Engine's built-in OpenXR support. Unreal Engine 4.26 también admite el complemento de extensión OpenXRde Microsoft, lo que permite la interacción con la mano y la compatibilidad con el controlador HP Reverb G2, lo que activa el conjunto completo de características de HoloLens 2 y Windows Mixed Reality cascos.Unreal Engine 4.26 also supports Microsoft's OpenXR extension plugin, enabling hand interaction and HP Reverb G2 controller support, lighting up the full feature set of HoloLens 2 and Windows Mixed Reality headsets. Unreal Engine 4.26 está disponible hoy en el iniciador de Epic Games,con MRTK-Unreal 0.12 compatible con proyectos de OpenXR.Unreal Engine 4.26 is available today on the Epic Games Launcher, with MRTK-Unreal 0.12 supporting OpenXR projects.

OpenXR para desarrollo nativoOpenXR for native development

Puede desarrollar mediante OpenXR en un HoloLens 2 o Windows Mixed Reality casco de realidad virtual inmersivo en el escritorio.You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive VR headset on the desktop. Si no tiene acceso a un casco, puede usar el emulador de HoloLens 2 o el simulador de Windows Mixed Reality en su lugar.If you don't have access to a headset, you can use the HoloLens 2 Emulator or the Windows Mixed Reality Simulator instead.

Para empezar a desarrollar aplicaciones OpenXR para HoloLens 2 o Windows Mixed Reality cascos vr, consulte introducción al desarrollo de OpenXR.To start developing OpenXR applications for HoloLens 2 or Windows Mixed Reality VR headsets, see how to get started with OpenXR development.

Para un paseo por todos los componentes principales de la API de OpenXR, junto con ejemplos de las aplicaciones reales que usan OpenXR hoy en día, consulte este vídeo de tutorial de 60 minutos:For a tour through all the major components of the OpenXR API, along with examples of the real-world applications using OpenXR today, check out this 60-minute walkthrough video:

Consulte tambiénSee also