OpenXR

Logo OpenXR

OpenXR est une norme d’API open royalty-free de Khronos, fournissant aux moteurs un accès natif à une gamme d’appareils dans le spectre de réalité mixte.

Vous pouvez développer à l’aide d’OpenXR sur un HoloLens 2 ou Windows Mixed Reality casque VR immersif sur le bureau. Si vous n’avez pas accès à un casque, vous pouvez utiliser l’émulateur HoloLens 2 ou le simulateur Windows Mixed Reality à la place.

Pourquoi OpenXR ?

Avec OpenXR, vous pouvez créer des moteurs qui ciblent les deux appareils holographiques, tels que HoloLens 2 et les appareils VR immersifs, tels que les casques Windows Mixed Reality pour les PC de bureau. OpenXR vous permet d’écrire du code une fois que celui-ci est ensuite portable sur un large éventail de plateformes matérielles.

L’API OpenXR utilise un chargeur pour connecter votre application directement à la prise en charge de la plateforme native de votre casque. Les utilisateurs finaux obtiennent des performances maximales et une latence minimale, qu’ils utilisent un Windows Mixed Reality ou tout autre casque.

Qu’est-ce que OpenXR ?

L’API OpenXR fournit la prédiction de pose principale, le minutage d’images et les fonctionnalités d’entrée spatiale dont vous aurez besoin pour créer un moteur qui peut cibler à la fois des appareils holographiques et immersifs.

Pour en savoir plus sur l’API OpenXR, consultez la spécification OpenXR 1.0, la référence d’API et le guide de référence rapide. Pour plus d’informations, consultez la page Khronos OpenXR.

Pour cibler l’ensemble de fonctionnalités complet de HoloLens 2, vous allez également utiliser des extensions OpenXR spécifiques aux fournisseurs et aux fournisseurs qui permettent des fonctionnalités supplémentaires au-delà du cœur OpenXR 1.0, telles que le suivi des mains, le suivi oculaire, le mappage spatial et les ancres spatiales. Pour plus d’informations, consultez la section Feuille de route ci-dessous sur les extensions à venir plus tard cette année.

OpenXR n’est pas lui-même un moteur de réalité mixte. Au lieu de cela, OpenXR permet aux moteurs tels que Unity et Unreal d’écrire du code portable une fois qui peuvent ensuite accéder aux fonctionnalités de plateforme natives de l’appareil holographique ou immersif de l’utilisateur, quel que soit le fournisseur qui a créé cette plateforme.

Feuille de route

La spécification OpenXR définit un mécanisme d’extension qui permet aux implémenteurs d’exécution d’exposer des fonctionnalités supplémentaires au-delà des fonctionnalités principales définies dans la spécification OpenXR 1.0 de base.

Il existe trois types d’extensions OpenXR :

  • Extensions de fournisseur (par exemple) MSFT: active l’innovation par fournisseur dans les fonctionnalités matérielles ou logicielles. Tout fournisseur d’exécution peut introduire et expédier une extension de fournisseur à tout moment.
    • Extensions de fournisseur expérimentales (par exemple) MSFT_preview: extensions de fournisseur expérimentales en préversion pour recueillir des commentaires. MSFT_preview les extensions sont destinées aux appareils de développement uniquement et seront supprimées lorsque l’extension réelle est fournie. Pour les tester, vous pouvez activer les extensions en préversion sur votre appareil développeur.
  • Extensions inter-fournisseurs : extensions inter-fournisseurs EXT que plusieurs entreprises définissent et implémentent. Les groupes d’entreprises intéressées peuvent introduire des extensions EXT à tout moment.
  • Extensions officielles KHR : Les extensions Khronos officielles ont été ratifiées dans le cadre d’une version principale des spécifications. Les extensions KHR sont couvertes par la même licence que la spécification principale elle-même.

Le runtime OpenXR Windows Mixed Reality prend en charge un ensemble d’extensions MSFTEXT et un ensemble complet de fonctionnalités HoloLens 2 aux applications OpenXR :

Domaine de fonctionnalité Disponibilité de l’extension
Systèmes + sessions Spécification principale OpenXR 1.0 :
XrInstance, XrSystemId, XrSession
Espaces de référence (vue, local, étape) Spécification principale OpenXR 1.0 :
XrSpace
Afficher les configurations (mono, stéréo) Spécification principale OpenXR 1.0 :
XrView...
Chaînes + d’échange minutage d’images Spécification principale OpenXR 1.0 :
XrSwapchain... + xrWaitFrame
Couches de composition
(projection, quad)
Spécification principale OpenXR 1.0 :
XrCompositionLayer... + xrEndFrame
Entrée et haptique Spécification principale OpenXR 1.0 :
XrAction...
Intégration direct3D 11/12 Extensions officielles KHR publiées :
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Espace de référence non entrant
(expériences à l’échelle mondiale)
MSFT extension publiée :
XR_MSFT_unbounded_reference_space
Ancres spatiales

MSFT extension publiée :
XR_MSFT_spatial_anchor

MSFT extension publiée dans le runtime 108:(HoloLens 2 uniquement)
XR_MSFT_spatial_anchor_persistence

Interaction entre les mains
(poignée/pose de but, pression aérienne, saisie)

HoloLens 2 uniquement

MSFT extension publiée :
XR_MSFT_hand_interaction
Articulation de main + maillage de main

HoloLens 2 uniquement

EXT extension publiée :
XR_EXT_hand_tracking

MSFT extension publiée :
XR_MSFT_hand_tracking_mesh

Regard de regard

HoloLens 2 uniquement

EXT extension publiée :
XR_EXT_eye_gaze_interaction
MRC (Mixed Reality Capture)
(troisième rendu de la caméra PV)

HoloLens 2 uniquement

MSFT extensions publiées :
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Profils d’interaction du contrôleur de mouvement
(Samsung Odyssey et HP Reverb G2)
MSFT extensions publiées dans le runtime 103 :
XR_EXT_samsung_odyssey_controller
XR_EXT_hp_mixed_reality_controller
Modèles de rendu du contrôleur de mouvement MSFT extension publiée dans le runtime 104 :
XR_MSFT_controller_model
Compréhension des scènes (plans, maillages)

HoloLens 2 uniquement

MSFT extension publiée dans l’exécution 106 :
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Modes de reprojection de couche de composition
(reprojection auto-planaire ou orientation uniquement)
MSFT extension publiée dans l’exécution 106 :
XR_MSFT_composition_layer_reprojection
Interopérabilité avec d’autres kits sdk Mixed Reality
(par exemple, QR)
MSFT extension publiée :
XR_MSFT_spatial_graph_bridge
Interopérabilité avec l’API CoreWindow UWP
(par exemple, pour le clavier/la souris)
MSFT extension publiée dans l’exécution 103 :
XR_MSFT_holographic_window_attachment
Interopérabilité avec les API WinRT héritées Mixed Reality
(par exemple, SpatialAnchorTransferManager))

MSFT extension publiée dans l’exécution 105 :
XR_MSFT_perception_anchor_interop

Autres extensions inter-fournisseurs

Extensions officielles KHR publiées :
XR_KHR_composition_layer_depth
XR_KHR_visibility_mask
XR_KHR_win32_convert_performance_counter_time
XR_KHR_composition_layer_color_scale_bias

EXT extensions publiées :
XR_EXT_win32_appcontainer_compatible
XR_EXT_debug_utils

Bien que certaines de ces extensions puissent commencer en tant qu’extensions spécifiques MSFT au fournisseur, Microsoft et d’autres fournisseurs d’exécution OpenXR travaillent ensemble pour concevoir des extensions ou KHR des fournisseurs inter-fournisseurs EXT pour la plupart de ces domaines de fonctionnalités. Les extensions inter-fournisseurs rendent le code que vous écrivez pour ces fonctionnalités portables sur les fournisseurs d’exécution, comme avec la spécification principale.

Où pouvez-vous utiliser OpenXR ?

Capture d’écran de Minecraft en cours de lecture par un utilisateur portant un casque de réalité mixte

Le nouveau moteur Render Builder de Minecraft a créé sa prise en charge vr de bureau à l’aide d’OpenXR !

Microsoft a travaillé avec Unity et Epic Games pour s’assurer que l’avenir de la réalité mixte est ouvert, non seulement pour HoloLens 2, mais dans toute l’étendue du PC VR, y compris le nouveau casque Reverb G2 de HP. OpenXR alimente la prise en charge vr inter-fournisseurs pour la livraison de titres majeurs aujourd’hui, comme Minecraft et Microsoft Flight Simulator! Pour plus d’informations sur le développement pour HoloLens (1ère génération), consultez les notes de publication.

Pour savoir comment bien démarrer avec OpenXR dans Unity, Unreal Engine ou votre propre moteur, lisez-le !

OpenXR dans Unity

La configuration d’Unity recommandée par Microsoft pour HoloLens 2 et le développement Windows Mixed Reality est Unity 2020.3 LTS avec le plug-in OpenXR Mixed Reality. Ce plug-in inclut la prise en charge des extensions OpenXR qui éclairent les fonctionnalités complètes des casques HoloLens 2 et Windows Mixed Reality, notamment le suivi des mains/œil, les ancres spatiales et les contrôleurs HP Reverb G2. MRTK-Unity prend en charge OpenXR à partir de MRTK 2.7. Pour plus d’informations sur la prise en main d’Unity 2020 et d’OpenXR, consultez Choisir une version Unity et un plug-in XR.

Si vous développez pour HoloLens (1ère génération), vous devez continuer à utiliser Unity 2019.4 LTS avec le back-end d’API WinRT hérité. Si vous ciblez le nouveau contrôleur HP Reverb G2 dans une application Unity 2019, consultez notre documentation d’entrée HP Reverb G2.

À compter d’Unity 2021.3 LTS, OpenXR est le seul serveur principal Unity pris en charge pour cibler des casques HoloLens 2 et Windows Mixed Reality.

OpenXR dans Unreal Engine

Unreal Engine 4.23 a été la première version majeure du moteur de jeu pour expédier la prise en charge préliminaire d’OpenXR 1.0! Désormais, dans Unreal Engine 4.26, la prise en charge des HoloLens 2, des Windows Mixed Reality et d’autres casques VR de bureau est disponible via la prise en charge intégrée d’OpenXR d’Unreal Engine. Unreal Engine 4.26 prend également en charge le plug-in d’extension OpenXR de Microsoft, ce qui permet l’interaction manuelle et la prise en charge du contrôleur HP Reverb G2, l’éclairage de l’ensemble des fonctionnalités complètes de HoloLens 2 et de casques Windows Mixed Reality. Unreal Engine 4.26 est disponible aujourd’hui sur epic Games Launcher, avec MRTK-Unreal 0.12 prenant en charge les projets OpenXR.

OpenXR pour le développement natif

Vous pouvez développer à l’aide d’OpenXR sur un casque VR immersif HoloLens 2 ou Windows Mixed Reality sur le bureau. Si vous n’avez pas accès à un casque, vous pouvez utiliser l’émulateur HoloLens 2 ou le simulateur Windows Mixed Reality à la place.

Pour commencer à développer des applications OpenXR pour HoloLens 2 ou Windows Mixed Reality casques VR, découvrez comment commencer à développer OpenXR.

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 pas à pas de 60 minutes :

Voir aussi