Partager via


Synchronisation du système de coordonnées avec la communication à distance holographique et l’API OpenXR

Avec l’API OpenXR, le système de coordonnées utilisateur est encapsulé dans un espace de référence de type XR_REMOTING_REFERENCE_SPACE_TYPE_USER_MSFT.

Conseil

Vous trouverez un exemple simple dans les exemples distants et de lecteur à l’intérieur du référentiel github des exemples holographiques de communication à distance. Supprimez les marques de #define ENABLE_USER_COORDINATE_SYSTEM_SAMPLE commentaire dans les fichiers OpenXrProgramm.cpp et SamplePlayerMain.h pour activer l’exemple de code.

Important

Pour en savoir plus sur l’API d’extension Holographic Remoting OpenXR, case activée la spécification qui se trouve dans le référentiel github d’exemples de communication à distance holographiques.

Définir et mettre à jour le système de coordonnées utilisateur dans l’application Lecteur

Actuellement, la communication à distance holographique prend uniquement en charge l’écriture d’un lecteur personnalisé avec l’API Windows Mixed Reality. Un lecteur écrit avec l’API Windows Mixed Reality peut être utilisé avec une télécommande OpenXR ! Par conséquent, vous devez définir le système de coordonnées utilisateur à partir du lecteur Windows Mixed Reality. Pour plus d’informations, consultez Synchronisation du système de coordonnées avec communication à distance holographique et l’API Windows Mixed Reality.

Obtenir le système de coordonnées utilisateur dans l’application distante

Pour créer le système de coordonnées utilisateur dans l’appel xrCreateReferenceSpace de l’application distante avec l’argument XR_REMOTING_REFERENCE_SPACE_TYPE_USER_MSFT :

xr::SpaceHandle space;
XrReferenceSpaceCreateInfo createInfo{XR_TYPE_REFERENCE_SPACE_CREATE_INFO};
createInfo.referenceSpaceType = static_cast<XrReferenceSpaceType>(XR_REMOTING_REFERENCE_SPACE_TYPE_USER_MSFT);
createInfo.poseInReferenceSpace = xr::math::Pose::Translation({0.0f, 0.0f, 0.0f});
CHECK_XRCMD(xrCreateReferenceSpace(m_session.Get(), &createInfo, space.Put()));

Voir aussi