OpenXROpenXR

OpenXR logo

OpenXR est une norme d’API gratuite et gratuite de Khronos, qui fournit aux moteurs un accès natif à une gamme de périphériques dans le spectre de la réalité mixte.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.

Vous pouvez développer avec OpenXR sur HoloLens 2 ou un casque immersif Windows Mixed Reality sur le bureau.You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive headset on the desktop. Si vous n’avez pas accès à un casque, vous pouvez utiliser l’émulateur HoloLens 2 ou Windows Mixed Reality Simulator à la place.If you don't have access to a headset, you can use the HoloLens 2 Emulator or the Windows Mixed Reality Simulator instead.

Pourquoi OpenXR ?Why OpenXR?

Avec OpenXR, vous pouvez créer des moteurs qui ciblent des appareils holographiques, tels que HoloLens 2, et des appareils immersifs, tels que des casques Windows mixtes pour ordinateurs de bureau.With OpenXR, you can build engines that target both holographic devices, like HoloLens 2, and immersive devices, like Windows Mixed Reality headsets for desktop PCs. OpenXR vous permet d’écrire du code une fois qui est ensuite portable sur une large gamme de plateformes matérielles.OpenXR lets you write code once that's then portable across a wide range of hardware platforms.

L’API OpenXR utilise un chargeur pour connecter votre application directement à la prise en charge native de la plateforme de votre casque.The OpenXR API uses a loader to connect your application directly to your headset's native platform support. Les utilisateurs finaux obtiennent des performances maximales et une latence minimale, qu’ils utilisent une réalité mixte Windows ou tout autre casque.End users get maximum performance and minimum latency, whether they're using a Windows Mixed Reality or any other headset.

Qu’est-ce que OpenXR ?What is OpenXR?

L’API OpenXR fournit la prédiction de pose de base, le minutage des frames et la fonctionnalité d’entrée spatiale dont vous aurez besoin pour créer un moteur qui peut cibler des appareils holographiques et immersifs.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.

Pour en savoir plus sur l’API OpenXR, consultez la spécificationOpenXR 1,0, informations de référencesur les API et Guide de référence rapide.To learn about the OpenXR API, check out the OpenXR 1.0 specification, API reference, and quick reference guide. Pour plus d’informations, consultez la page Khronos OpenXR.For more information, see the Khronos OpenXR page.

Pour cibler l’ensemble complet des fonctionnalités de HoloLens 2, vous utiliserez également des extensions OpenXR spécifiques à un fournisseur et à un fournisseur qui activent des fonctionnalités supplémentaires au-delà du OpenXR 1,0 cœurs, telles que le suivi articulé, le suivi oculaire, le mappage spatial et les ancres spatiales.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. Pour plus d’informations, consultez la section de feuille de route ci-dessous sur les extensions qui seront fournies plus tard cette année.For more information, see the Roadmap section below on the extensions coming later this year.

OpenXR n’est pas lui-même un moteur de réalité mixte.OpenXR isn't itself a mixed reality engine. Au lieu de cela, OpenXR permet aux moteurs comme Unity et Unreal d’écrire du code portable une seule fois qui peut ensuite accéder aux fonctionnalités natives de la plateforme de l’appareil holographique ou immersif de l’utilisateur, quel que soit le fournisseur qui a créé cette plateforme.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.

Feuille de routeRoadmap

La spécification OpenXR définit un mécanisme d’extension qui permet aux implémenteurs de runtime d’exposer des fonctionnalités supplémentaires au-delà des fonctionnalités de base définies dans la spécification 1,0 de base OpenXR.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.

Il existe trois types d’extensions OpenXR :There are three kinds of OpenXR extensions:

  • Les extensions de fournisseur (par exemple, MSFT ) : activent l’innovation par fournisseur dans les fonctionnalités matérielles ou logicielles.Vendor extensions (for example, MSFT): Enables per-vendor innovation in hardware or software features. N’importe quel fournisseur de Runtime peut introduire et livrer une extension de fournisseur à tout moment.Any runtime vendor can introduce and ship a vendor extension at any time.
    • Extensions de fournisseurs expérimentaux (par exemple, MSFT_preview ) : extensions de fournisseur expérimentales prévisualisées pour recueillir des commentaires.Experimental vendor extensions (for example, MSFT_preview): Experimental vendor extensions being previewed to gather feedback. MSFT_preview les extensions sont destinées aux appareils de développement uniquement et seront supprimées lorsque l’extension réelle est expédiée.MSFT_preview extensions are for developer devices only and will be removed when the real extension ships. Pour les expérimenter, vous pouvez activer les extensions préliminaires sur votre appareil de développement.To experiment with them, you can enable preview extensions on your developer device.
  • Extensions inter-fournisseurs EXT : extensions inter-fournisseurs que plusieurs entreprises définissent et implémentent.Cross-vendor EXT extensions: Cross-vendor extensions that multiple companies define and implement. Les groupes de sociétés intéressées peuvent introduire des extensions EXT à tout moment.Groups of interested companies can introduce EXT extensions at any time.
  • KHR Extensions officielles : extensions Khronos officielles ratifiées dans le cadre d’une version de base spec.Official KHR extensions: Official Khronos extensions ratified as part of a core spec release. Les extensions KHR sont couvertes par la même licence que la spécification principale elle-même.KHR extensions are covered by the same license as the core spec itself.

Depuis le 2020 juillet, le runtime Windows Mixed Reality OpenXR prend en charge un ensemble d' MSFT EXT extensions et qui apporte le jeu complet de fonctionnalités HoloLens 2 aux applications OpenXR :As of July 2020, 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:

Domaine de fonctionnalitéFeature area Disponibilité de l’extensionExtension availability
Systèmes et sessionsSystems + sessions OpenXR 1,0 Core spec :OpenXR 1.0 core spec:
XrInstance, XrSystemId, XrSessionXrInstance, XrSystemId, XrSession
Espaces de référence (vue, local, intermédiaire)Reference spaces (view, local, stage) OpenXR 1,0 Core spec :OpenXR 1.0 core spec:
XrSpace
Afficher les configurations (mono, stéréo)View configurations (mono, stereo) OpenXR 1,0 Core spec :OpenXR 1.0 core spec:
XrView...
Chaînes d’échange + minutage des framesSwapchains + frame timing OpenXR 1,0 Core spec :OpenXR 1.0 core spec:
XrSwapchain... + xrWaitFrame
Couches de compositionComposition layers
(projection, quadruple)(projection, quad)
OpenXR 1,0 Core spec :OpenXR 1.0 core spec:
XrCompositionLayer... + xrEndFrame
Entrée et haptiqueInput and haptics OpenXR 1,0 Core spec :OpenXR 1.0 core spec:
XrAction...
Intégration de Direct3D 11Direct3D 11 integration KHRExtension officielle publiée :Official KHR extension released:
XR_KHR_D3D11_enable
Intégration de Direct3D 12Direct3D 12 integration KHRExtension officielle publiée :Official KHR extension released:
XR_KHR_D3D12_enable
Espace de référence non lié
(expériences à l’échelle mondiale)
Unbounded reference space
(world-scale experiences)
MSFT extension libérée :MSFT extension released:
XR_MSFT_unbounded_reference_space
Ancres spatialesSpatial anchors MSFT extension libérée :MSFT extension released:
XR_MSFT_spatial_anchor
Interaction manuelle
(pose/pose, pression pneumatique, prise)
Hand interaction
(grip/aim pose, air-tap, grasp)

HoloLens 2 uniquementHoloLens 2 only

MSFT extension libérée :MSFT extension released:
XR_MSFT_hand_interaction
Articulation manuelle + mailleHand articulation + hand mesh

HoloLens 2 uniquementHoloLens 2 only

EXT extension publiée dans le runtime 102 :EXT extension released in runtime 102:
XR_EXT_hand_tracking

MSFT extension publiée dans le runtime 102 :MSFT extension released in runtime 102:
XR_MSFT_hand_tracking_mesh
Suivre du regardEye gaze

HoloLens 2 uniquementHoloLens 2 only

EXT extension libérée :EXT extension released:
XR_EXT_eye_gaze_interaction
Interopérabilité avec d’autres SDK HoloLensInterop with other HoloLens SDKs
(par exemple, QR)(for example, QR)

HoloLens 2 uniquementHoloLens 2 only

MSFT extension publiée dans le runtime 102 :MSFT extension released in runtime 102:
XR_MSFT_spatial_graph_bridge

MSFT extension dans preview runtime 104:MSFT extension in preview runtime 104:
XR_MSFT_perception_anchor_interop_preview

Capture de réalité mixte
(troisième rendu à partir d’une caméra PV)
Mixed Reality Capture
(third render from PV camera)

HoloLens 2 uniquementHoloLens 2 only

MSFT extensions publiées dans le runtime 102 :MSFT extensions released in runtime 102:
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interopérabilité avec l’API CoreWindow UWPInterop with UWP CoreWindow API
(par exemple, pour le clavier/la souris)(for example, for keyboard/mouse)
MSFT extension publiée dans le runtime 103 :MSFT extension released in runtime 103:
XR_MSFT_holographic_window_attachment
Profils d’interaction du contrôleur de mouvement (Samsung Odyssey et HP réverbération G2)Motion controller interaction profiles (Samsung Odyssey and HP Reverb G2) MSFT extensions publiées dans le runtime 103 :MSFT extensions released in runtime 103:
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modèles de rendu du contrôleur de mouvementMotion controller render models MSFT extension dans preview runtime 104:MSFT extension in preview runtime 104:
XR_MSFT_controller_model
Compréhension des scènes (plans, maillages)Scene understanding (planes, meshes)

HoloLens 2 uniquementHoloLens 2 only

Dans preview runtime 102 ou version ultérieure:In preview runtime 102 or later:
Utiliser XR_MSFT_spatial_graph_bridge avec Scene UNDERSTANDing SDKUse XR_MSFT_spatial_graph_bridge with Scene Understanding SDK

MSFT_preview extension dans le futur Runtime Preview (planifié)MSFT_preview extension in future preview runtime (planned)

Autres extensions inter-fournisseursOther cross-vendor extensions

KHRExtensions officielles publiées :Official KHR extensions released:

XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time

EXT extensions publiées :EXT extensions released:

XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Si certaines de ces extensions peuvent commencer par des extensions spécifiques au fournisseur MSFT , Microsoft et d’autres fournisseurs de Runtime OpenXR travaillent ensemble pour concevoir des extensions ou des fournisseurs croisés EXT pour la KHR plupart de ces domaines de fonctionnalités.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. Les extensions inter-fournisseurs feront du code que vous écrivez pour ces fonctionnalités portables entre les fournisseurs de Runtime, comme avec la spécification principale.Cross-vendor extensions will make the code you write for those features portable across runtime vendors, as with the core specification.

Bien démarrer avec OpenXRGetting started with OpenXR

Capture d’écran de Minecraft joué par un utilisateur ayant un casque de réalité mixte

Le nouveau moteur RenderDragon de Minecraft crée sa prise en charge de Desktop VR à l’aide de OpenXRMinecraft's new RenderDragon engine is building its desktop VR support using OpenXR

Microsoft a travaillé avec les jeux Unity et Epic pour s’assurer que l’avenir de la réalité mixte est ouvert, pas seulement pour HoloLens 2, mais à travers toute la largeur de PC VR, y compris le nouveau casque de réverbération G2 de 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. Pour plus d’informations sur le développement pour HoloLens (1re génération), consultez les notes de publication.For more information on developing for HoloLens (1st gen), see the release notes.

Pour découvrir comment vous pouvez commencer à utiliser OpenXR dans Unity, un moteur inréel ou votre propre moteur, lisez !To learn how you can get started with OpenXR in Unity, Unreal Engine or your own engine, read on!

OpenXR dans UnityOpenXR in Unity

Aujourd’hui, le chemin de développement Unity pris en charge pour les casques HoloLens 2, HoloLens (1er génération) et Windows Mixed Reality est unity 2019 LTS avec le backend de l’API WinRT existante.Today, the supported Unity development path for HoloLens 2, HoloLens (1st gen), and Windows Mixed Reality headsets is Unity 2019 LTS with the existing WinRT API backend. Vous pouvez accéder à OpenXR avec Unity; Si vous ciblez le nouveau contrôleur de reréverbérations de HP G2 dans une application Unity 2019, consultez nos documents d’entrée de réverbération de HP G2.You can jump into OpenXR with Unity; If you’re targeting the new HP Reverb G2 controller in a Unity 2019 app, see our HP Reverb G2 input docs.

À partir de unity 2020 LTS, Unity expédie un backend OpenXR qui prend en charge les casques HoloLens 2 et Windows Mixed Reality.Starting with Unity 2020 LTS, Unity will ship an OpenXR backend that supports HoloLens 2 and Windows Mixed Reality headsets. Cela inclut la prise en charge des extensions OpenXR qui mettent en lumière les fonctionnalités complètes des casques HoloLens 2 et Windows Mixed Reality, notamment le suivi des mains/yeux, les ancres spatiales et les contrôleurs de réverbération de HP.This 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 la prise en charge de OpenXR est actuellement en cours de développement dans la branche mrtk_development et sera disponible en même temps que le package OpenXR preview.MRTK-Unity support for OpenXR is currently under development in the mrtk_development branch and will be available alongside that OpenXR preview package.

À partir de unity 2021, OpenXR sera alors le seul backend Unity pris en charge pour le ciblage des casques HoloLens 2 et Windows Mixed Reality.Starting in Unity 2021, OpenXR will then graduate to be the only supported Unity backend for targeting HoloLens 2 and Windows Mixed Reality headsets.

OpenXR dans le moteur non réelOpenXR in Unreal Engine

À partir du moteur inréel 4,23, la prise en charge complète des casques HoloLens 2 et de la réalité mixte Windows est disponible via le plug-in de réalité mixte Windows (WinRT).As of Unreal Engine 4.23, full support for HoloLens 2 and Windows Mixed Reality headsets are available through the Windows Mixed Reality (WinRT) plugin.

Le moteur 4,23 est également la première version majeure du moteur de jeu à expédier la prise en charge de la version préliminaire de OpenXR 1,0 !Unreal Engine 4.23 was also the first major game engine release to ship preview support for OpenXR 1.0! Désormais, dans le moteur 4,26, la prise en charge de HoloLens 2, de la réalité mixte Windows et d’autres casques Desktop VR sera disponible via le plug-in OpenXR intégré du moteur.Now in Unreal Engine 4.26, support for HoloLens 2, Windows Mixed Reality and other desktop VR headsets will be available through Unreal Engine’s built-in OpenXR plugin. Le moteur 4,26 est également livré avec son premier ensemble de plug-ins d’extension OpenXR permettant une interaction manuelle et la prise en charge des contrôleurs de réinitialisation de la réinitialisation HP, en éclairant l' ensemble complet des fonctionnalités des casques HoloLens 2 et Windows Mixed Reality.Unreal Engine 4.26 will also ship with its first set of OpenXR extension plugins enabling hand interaction and HP Reverb G2 controller support, lighting up the full feature set of HoloLens 2 and Windows Mixed Reality headsets. Le moteur Unreal 4,26 est disponible en préversion dès aujourd’hui sur le lanceur de jeux Epic, avec la version officielle qui sera publiée plus tard cette année.Unreal Engine 4.26 is available in preview today on the Epic Games Launcher, with the official release coming later this year. La prise en charge MRTK-Unreal pour OpenXR sera également disponible avec cette version.MRTK-Unreal support for OpenXR will be available alongside that release as well.

OpenXR pour le développement natifOpenXR for native development

Vous pouvez développer avec OpenXR sur HoloLens 2 ou un casque immersif Windows Mixed Reality sur le bureau.You can develop using OpenXR on a HoloLens 2 or Windows Mixed Reality immersive headset on the desktop. Si vous n’avez pas accès à un casque, vous pouvez utiliser l’émulateur HoloLens 2 ou Windows Mixed Reality Simulator à la place.If you don't have access to a headset, you can use the HoloLens 2 Emulator or the Windows Mixed Reality Simulator instead.

Pour commencer à développer des applications OpenXR pour les casques HoloLens 2 ou Windows Mixed Reality, consultez la page prise en main du développement OpenXR.To start developing OpenXR applications for HoloLens 2 or immersive Windows Mixed Reality headsets, see how to get started with OpenXR development.

Pour une visite guidée de tous les principaux composants de l’API OpenXR, ainsi que des exemples d’applications réelles utilisant OpenXR aujourd’hui, consultez cette vidéo de procédure pas à pas de 60 minutes :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:

Voir aussiSee also