Partager via


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 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.

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, comme les casques Windows Mixed Reality pour les PC de bureau. OpenXR vous permet d’écrire du code une fois qu’il 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 une réalité mixte Windows ou tout autre casque.

Qu’est-ce que OpenXR ?

L’API OpenXR fournit la prédiction de la pose principale, le minutage des images et les fonctionnalités d’entrée spatiale dont vous avez 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 de l’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 d’HoloLens 2, vous utilisez également des extensions OpenXR spécifiques aux fournisseurs et aux fournisseurs. Ces fonctionnalités permettent le suivi des mains articulées, le suivi oculaire, le mappage spatial et les ancres spatiales. Pour plus d’informations, consultez la section Feuille de route 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 comme 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 d’autres fonctionnalités 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) XR_MSFT_...: permet 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) XR_MSFTX_...: extensions de fournisseur expérimentales en préversion pour recueillir des commentaires. XR_MSFTX_... les extensions sont destinées aux appareils de développement uniquement et sont 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 : Extensions officielles Khronos 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.

Windows Mixed Reality OpenXR Runtime prend en charge un ensemble d’extensions MSFT EXT et un ensemble complet de fonctionnalités HoloLens 2 aux applications OpenXR :

Fonctionnalités Disponibilité de l’extension
Systèmes + sessions Spécifications de cœur OpenXR 1.0 :
XrInstance, , XrSystemIdXrSession
Espaces de référence (affichage, local, étape) Spécifications de cœur OpenXR 1.0 :
XrSpace
Afficher les configurations (mono, stéréo) Spécifications de cœur OpenXR 1.0 :
XrView...
Minutage des trames + de permutation Spécifications de cœur OpenXR 1.0 :
XrSwapchain... + xrWaitFrame
Couches de composition
(projection, quad)
Spécifications de cœur OpenXR 1.0 :
XrCompositionLayer... + xrEndFrame
Entrées et haptiques Spécifications de cœur OpenXR 1.0 :
XrAction...
Intégration de Direct3D 11/12 Extensions officielles KHR publiées :
XR_KHR_D3D11_enable
XR_KHR_D3D12_enable
Espace de référence non lié
(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 manuelle
(poignée/pose de but, appui aérien, saisie)

HoloLens 2 uniquement

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

HoloLens 2 uniquement

EXT extension publiée :
XR_EXT_hand_tracking

MSFT extension publiée :
XR_MSFT_hand_tracking_mesh

Suivre du regard

HoloLens 2 uniquement

EXT extension publiée :
XR_EXT_eye_gaze_interaction
Capture de réalité mixte
(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
(SamsungOdyssée 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 le runtime 106 :
XR_MSFT_scene_understanding
XR_MSFT_scene_understanding_serialization
Marqueur de scène (codes QR)

HoloLens 2 uniquement

MSFT extension publiée dans le runtime 113 :
XR_MSFT_scene_marker
Modes de reprojection de couche de composition
(reprojection automatiquement planaire ou orientation uniquement)
MSFT extension publiée dans le runtime 106 :
XR_MSFT_composition_layer_reprojection
Interopérabilité avec d’autres kits SDK de réalité mixte
(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 le runtime 103 :
XR_MSFT_holographic_window_attachment
Interopérabilité avec les API WinRT de réalité mixte héritées
(par exemple, SpatialAnchorTransferManager))

MSFT extension publiée dans le runtime 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 démarrer en tant qu’extensions spécifiques au MSFT 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 entre les fournisseurs d’exécution, comme avec la spécification principale.

Où pouvez-vous utiliser OpenXR ?

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

Le nouveau moteur Render Dragon 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 de PC VR, y compris le nouveau casque Reverb G2 de HP. OpenXR alimente la prise en charge vr inter-fournisseurs pour les titres majeurs d’expédition aujourd’hui, tels que 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 Actuelle d’Unity recommandée par Microsoft pour le développement HoloLens 2 et Windows Mixed Reality est Unity 2020.3 LTS avec le plug-in Mixed Reality OpenXR. Ce plug-in inclut la prise en charge des extensions OpenXR qui éclairent toutes les fonctionnalités 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.

Depuis Unity 2021.3 LTS, OpenXR est le seul back-end Unity pris en charge pour cibler les casques HoloLens 2 et Windows Mixed Reality.

OpenXR dans Unreal Engine

Unreal Engine 4.23 était 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 de HoloLens 2, Windows Mixed Reality et d’autres casques VR de bureau est disponible via la prise en charge intégrée d’OpenXR de Unreal Engine. Unreal Engine 4.26 prend également en charge le plug-in d’extension OpenXR de Microsoft. Cela permet l’interaction manuelle et la prise en charge du contrôleur HP Reverb G2, l’éclairage de l’ensemble complet de fonctionnalités des casques HoloLens 2 et 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 les casques HoloLens 2 ou Windows Mixed Reality VR, découvrez comment bien démarrer avec le développement 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