OpenXR

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.

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

Pourquoi OpenXR ?

avec OpenXR, vous pouvez créer des moteurs qui ciblent des appareils holographiques, comme des HoloLens 2 et des appareils immersifs, tels que des casques Windows Mixed Reality pour les pc de bureau. OpenXR vous permet d’écrire du code une fois qui est ensuite portable sur une large gamme de plateformes matérielles.

L’API OpenXR utilise un chargeur pour connecter votre application directement à la prise en charge native de la plateforme 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 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.

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. Pour plus d’informations, consultez la page Khronos OpenXR.

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. Pour plus d’informations, consultez la section de feuille de route ci-dessous sur les extensions qui seront fournies 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 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.

Feuille de route

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.

Il existe trois types d’extensions OpenXR :

  • Les extensions de fournisseur (par exemple, MSFT ) : activent l’innovation par fournisseur dans les fonctionnalités matérielles ou logicielles. N’importe quel fournisseur de Runtime peut introduire et livrer une extension de fournisseur à tout moment.
    • Extensions de fournisseurs expérimentaux (par exemple, MSFT_preview ) : extensions de fournisseur expérimentales prévisualisées 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 expédiée. Pour les expérimenter, vous pouvez activer les extensions préliminaires sur votre appareil de développement.
  • Extensions inter-fournisseurs EXT : extensions inter-fournisseurs que plusieurs entreprises définissent et implémentent. Les groupes de sociétés intéressées peuvent introduire des extensions EXT à tout moment.
  • KHR Extensions officielles : extensions Khronos officielles ratifiées dans le cadre d’une version de base spec. Les extensions KHR sont couvertes par la même licence que la spécification principale elle-même.

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

Domaine de fonctionnalité Disponibilité de l’extension
Systèmes et sessions OpenXR 1,0 Core spec :
XrInstance, XrSystemId, XrSession
Espaces de référence (vue, local, intermédiaire) OpenXR 1,0 Core spec :
XrSpace
Afficher les configurations (mono, stéréo) OpenXR 1,0 Core spec :
XrView...
Chaînes d’échange + minutage des frames OpenXR 1,0 Core spec :
XrSwapchain... + xrWaitFrame
Couches de composition
(projection, quadruple)
OpenXR 1,0 Core spec :
XrCompositionLayer... + xrEndFrame
Entrée et haptique OpenXR 1,0 Core spec :
XrAction...
Intégration de Direct3D 11 KHRExtension officielle publiée :
XR_KHR_D3D11_enable
Intégration de Direct3D 12 KHRExtension officielle publiée :
XR_KHR_D3D12_enable
Espace de référence non lié
(expériences à l’échelle mondiale)
MSFT extension libérée :
XR_MSFT_unbounded_reference_space
Ancres spatiales

MSFT extension libérée :
XR_MSFT_spatial_anchor

MSFT_preview extension dans preview runtime 107:
XR_MSFT_spatial_anchor_persistence_preview

Interaction manuelle
(pose/pose, pression pneumatique, prise)

HoloLens 2 uniquement

MSFT extension libérée :
XR_MSFT_hand_interaction
Articulation manuelle + maille

HoloLens 2 uniquement

EXT extension libérée :
XR_EXT_hand_tracking

MSFT extension libérée :
XR_MSFT_hand_tracking_mesh
Suivre du regard

HoloLens 2 uniquement

EXT extension libérée :
XR_EXT_eye_gaze_interaction
Capture de réalité mixte
(troisième rendu à partir d’une caméra PV)

HoloLens 2 uniquement

MSFT extensions publiées :
XR_MSFT_secondary_view_configuration
XR_MSFT_first_person_observer
Interopérabilité avec d’autres SDK de réalité mixte
(par exemple, QR)

MSFT extension libérée :
XR_MSFT_spatial_graph_bridge

MSFT extension publiée dans le runtime 105 :
XR_MSFT_perception_anchor_interop

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
Profils d’interaction du contrôleur de mouvement
(Samsung Odyssey et HP réverbération 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

Modes de reprojection de la couche
de composition (reprojection automatique ou orientation uniquement)
MSFT extension publiée dans le runtime 106 :
XR_MSFT_composition_layer_reprojection
Autres extensions inter-fournisseurs

KHRExtensions officielles 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

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

Où pouvez-vous utiliser OpenXR ?

capture d’écran des Minecraft joués par un utilisateur qui porte un casque de réalité mixte

le nouveau moteur RenderDragon de Minecraft a créé sa prise en charge de desktop VR à l’aide de OpenXR !

Microsoft travaille 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. OpenXR alimente la prise en charge inter-fournisseurs de la livraison de titres majeurs aujourd’hui, par exemple Minecraft et Microsoft Flight Simulator. pour plus d’informations sur le développement pour HoloLens (1re génération), consultez les notes de publication.

Pour découvrir comment vous pouvez commencer à utiliser OpenXR dans Unity, un moteur inréel ou votre propre moteur, lisez !

OpenXR dans Unity

la configuration d’unity recommandée de Microsoft pour le développement de HoloLens 2 et d’Windows Mixed Reality est unity 2020,3 LTS avec le dernier plug-in OpenXR de réalité mixte. ce plug-in inclut la prise en charge des extensions OpenXR qui mettent en lumière les fonctionnalités complètes de HoloLens 2 et Windows Mixed Reality casques, notamment le suivi des mains/yeux, les ancrages spatiaux et les contrôleurs de réverbérations HP. MRTK-Unity prend en charge OpenXR à partir de MRTK 2,7. Pour plus d’informations sur la prise en main d’Unity 2020 et OpenXR, consultez choix d’une version Unity et d’un plug-in XR.

si vous développez pour HoloLens (1re génération), vous devez continuer à utiliser unity 2019,4 LTS avec le backend de l’API WinRT héritée. 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.

à partir de unity 2021,2, OpenXR sera le seul backend unity pris en charge pour le ciblage des HoloLens 2 et des casques Windows Mixed Reality.

OpenXR dans le moteur non réel

Le moteur 4,23 est la première version majeure du moteur de jeu à expédier la prise en charge de la version préliminaire de OpenXR 1,0 ! désormais, dans le moteur 4,26, la prise en charge de HoloLens 2, Windows Mixed Reality et d’autres casques desktop VR est disponible via la prise en charge OpenXR intégrée du moteur. le moteur non réel 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 des contrôleurs de réverbes de HP, en éclairant l' ensemble des fonctionnalités de HoloLens 2 et Windows Mixed Reality casques. le moteur inréel 4,26 est disponible aujourd’hui sur les jeux Epic Lanceur, avec MRTK-Unreal 0,12 prenant en charge les projets OpenXR.

OpenXR pour le développement natif

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

pour commencer à développer des applications OpenXR pour HoloLens 2 ou Windows Mixed Reality des casques VR, consultez la page prise en main du 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 de procédure pas à pas de 60 minutes :

Voir aussi