Utiliser les ressources du PC pour alimenter votre application avec l’application distante holographique à distance

Cet article explique le cas d’usage suivant pour la communication à distance holographique :

  • Vous souhaitez que les ressources d’un PC alimentent votre application au lieu de vous appuyer sur les ressources intégrées HoloLens : vous pouvez créer et créer une application qui dispose de la fonctionnalité de communication à distance holographique. L’utilisateur expérimente l’application sur l’HoloLens, mais l’application s’exécute en fait sur un PC, ce qui permet à l’application de tirer parti des ressources plus puissantes du PC. Cela peut être particulièrement utile si votre application a des ressources ou des modèles haute résolution et que vous ne souhaitez pas que la fréquence d’images souffre. Nous appelons cela une application distante de communication à distance holographique. Les entrées de l’HoloLens (le regard, le mouvement, la voix et le mappage spatial) sont envoyées au PC, où le contenu est rendu dans une vue immersive virtuelle. Les images rendues sont ensuite envoyées à l’HoloLens.

Ce type de communication à distance holographique est également disponible pour les casques immersifs Windows Mixed Reality (WMR). Cela peut être utile si, par exemple, votre casque WMR est connecté à un PC de sac à dos et que vous souhaitez diffuser votre application d’un PC plus puissant vers le PC sac à dos.

Pour en savoir plus sur la communication à distance holographique, consultez Vue d’ensemble de la communication à distance holographique

Notez que vous pouvez également utiliser la communication à distance holographique si vous souhaitez afficher un aperçu et déboguer votre application pendant le processus de développement.

Deux modes disponibles dans la communication à distance holographique

Mode 1 : Application distante s’exécutant sur PC en mode Connexion, Lecteur exécuté sur le HoloLens 2 en mode Écoute.

Le Lecteur écoute les connexions entrantes pendant que l’application distante tente de se connecter.

Mode 2 : Application distante s’exécutant sur PC en mode Écoute, Lecteur exécuté sur le HoloLens 2 en mode connexion.

L’application distante écoute les connexions entrantes pendant que le Lecteur tente de se connecter.

Configurer l’application Lecteur de communication à distance holographique

Pour utiliser la communication à distance holographique en mode 1 seul, installez l’application Lecteur de communication à distance holographique à partir du Microsoft Store sur votre HoloLens 2 (dans cet article, nous allons la désigner simplement comme « lecteur »). Comme expliqué ci-dessous, après avoir téléchargé et exécuté l’application, vous verrez le numéro de version et l’adresse IP à laquelle vous devez vous connecter. Nous vous recommandons d’utiliser la dernière version du Lecteur disponible.

La communication à distance holographique nécessite un PC rapide et Wi-Fi connexion. Vous trouverez plus d’informations dans l’article lecteur lié ci-dessus.

Capture d’écran du lecteur de communication à distance holographique en cours d’exécution dans HoloLens

Pour utiliser la communication à distance holographique dans les deux modes spécifiés ci-dessus, vous devez cloner holographique Remoting Sample player et le déployer sur le HoloLens 2 à l’aide de Visual Studio.

Créer une application distante s’exécutant sur PC pour la communication à distance holographique à l’aide d’Unity

  1. Dans la barre de menus, sélectionnez Modifier les > paramètres du projet.

  2. Dans la colonne de gauche, sélectionnez Gestion du plug-in XR.

  3. Vérifiez que vous êtes dans l’onglet paramètres plateforme Windows universelle.

    Capture d’écran montrant l'XR-Plug dans la fenêtre Gestion avec l’onglet plateforme Windows universelle sélectionné.

  4. Dans la section plug-in OpenXR, sélectionnez Microsoft HoloLens groupe de fonctionnalités et le groupe de fonctionnalités d’application distante Holographic Remoting.

    Capture d’écran montrant le plug-in OpenXr avec « Microsoft HoloLens groupe de fonctionnalités » et « Groupe de fonctionnalités d’application distante holographique à distance » sélectionnés.

  5. Désélectionnez la zone Initialiser XR au démarrage case activée.

    Capture d’écran de la fenêtre Gestion du plug-in XR avec « Initialiser XR au démarrage » non sélectionnée.

  6. Écrivez du code pour définir la configuration de communication à distance et déclencher l’initialisation XR. L’application peut appeler la fonction Connect pour le mode 1 ou appeler la fonction Listen pour le mode 2. Pour voir un exemple, téléchargez nos exemples Open XR Unity Mixed Reality, puis, dans le projet RemotingSample, affichez le script AppRemoting.cs.

  7. Pour le mode 1, le mode connexion , appelez Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect avec un renseigné RemotingConfiguration. L’exemple d’application expose cela dans l’inspecteur et montre comment renseigner l’adresse IP à partir d’un champ de texte. L’appel Connect définit la configuration et initialise automatiquement XR, c’est pourquoi il doit être appelé en tant que coroutine :

    StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
    
  8. Pour le mode 2, le mode d’écoute , appelez Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen avec un renseigné RemotingListenConfiguration. L’exemple d’application expose cela dans l’inspecteur. L’appel Listen définit la configuration et attend une connexion à partir de l’exemple de lecteur holographique de communication à distance, c’est pourquoi il doit être appelé en tant que coroutine :

    StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
    
  9. Lors de l’exécution, vous pouvez obtenir l’état de connexion actuel avec l’API AppRemoting.TryGetConnectionState et éventuellement déconnecter et dés-initialiser XR à l’aide AppRemoting.Disconnect()de . Cela peut être utilisé pour se déconnecter et se reconnecter à un autre appareil au sein de la même session d’application. L’application RemotingSample fournit un cube tappable qui déconnecte la session de communication à distance en cas d’appui.

Exécuter l’application distante holographique à distance et l’application Lecteur dans les modes décrits ci-dessus

Mode 1 : exécutez l’application distante holographique à distance sur PC en mode Connexion et le lecteur en mode Écoute :

  1. Si le Lecteur est déjà installé à partir du store sur le HoloLens 2, ignorez les étapes 2 et 3 ci-dessous où vous générez et exécutez l’application Exemple de lecteur. Au lieu de cela, exécutez le Lecteur installé et passez à l’étape 4.

  2. Ouvrez l’application Holographic Remoting Sample Player à l’aide de VS 2019, puis effectuez l’une des opérations suivantes :

    Pour exécuter sur un HoloLens 2 à l’aide d’un câble USB :

    • Configurez les options de génération comme indiqué ici :

    Capture d’écran des paramètres de build de Visual Studio pour si l’utilisateur est connecté via un câble USB.

    • Ouvrez la page Propriétés du projet, puis accédez à Propriétés> de configurationDébogage.
    • Cliquez sur la liste déroulante Débogueur à lancer , puis sélectionnez Appareil.
    • Dans le champ Arguments de ligne de commande , ajoutez « -listen ».

    Capture d’écran des arguments de ligne de commande pour la génération à l’aide d’un câble USB.

    Pour exécuter sur un HoloLens 2 à l’aide du Wifi :

    • Configurez les options de génération comme indiqué ici :

    Capture d’écran des paramètres de build de Visual Studio pour si l’utilisateur est généré sur HoloLens à l’aide du Wifi.

    • Ouvrez la page Propriétés du projet, puis accédez à Propriétés> de configurationDébogage.
    • Cliquez sur la liste déroulante Débogueur à lancer , puis sélectionnez Ordinateur distant.
    • Dans le champ Arguments de ligne de commande , ajoutez l’adresse IP Wifi de l’HoloLens.
  3. Pour déployer la solution SamplePlayer sur le HoloLens 2, appuyez sur le bouton de lecture dans Visual Studio. Vous pourrez voir l’exemple de lecteur HAR en cours d’exécution sur HoloLens 2, indiquant qu’il s’agit de « En attente d’une connexion sur l’adresse IP de HoloLens 2 ».

  4. Dans l’application distante exécutée sur le PC hôte, ajoutez l’adresse IP du HoloLens 2 affichée ci-dessus, puis sélectionnez Se connecter.

  5. Une fois la connexion établie, le lecteur en cours d’exécution sur HoloLens 2 démarre « Réception ».

Mode 2 : Exécutez l’application distante sur votre PC en mode Écoute et l’application lecteur HAR en mode Connexion :

  • Sur l’écran de l’interface utilisateur 2D de l’application distante s’exécutant sur PC, cliquez sur Écouter.

    Capture d’écran des paramètres de build de Visual Studio pour si l’utilisateur est connecté via un câble USB.

  • Ouvrez la page Propriétés du projet, puis accédez à Propriétés> de configurationDébogage.

  • Cliquez sur la liste déroulante Débogueur à lancer , puis sélectionnez Appareil.

  • Dans le champ Arguments de ligne de commande , ajoutez l’adresse IP du PC hôte.

Capture d’écran des arguments de ligne de commande pour la génération à l’aide d’un câble USB.

  • Pour déployer la solution SamplePlayer sur le HoloLens 2, dans la solution Visual Studio, cliquez sur le bouton de lecture. Vous pourrez voir l’exemple de lecteur HAR en cours d’exécution sur le HoloLens 2, indiquant qu’il s’agit de « Connexion à l’adresse IP donnée dans les arguments de ligne de commande ».

  • Une fois la connexion établie, l’application Holographic Remoting Sample Player en cours d’exécution sur le HoloLens 2 démarre « Réception ».

Conseil

Pour obtenir de meilleurs résultats, assurez-vous que votre application définit correctement . . /focus point. Cela aide la communication à distance holographique à adapter au mieux votre scène à la latence de votre connexion sans fil.

Migrer à partir des API de communication à distance holographique précédentes

Pour en savoir plus sur la communication à distance holographique, consultez Vue d’ensemble de la communication à distance holographique

UnityEngine.XR.WSA.HolographicRemoting

À partir de l’exemple de code dans la documentation d’Unity :

XR. WSA. HolographicRemoting OpenXR.Remoting.AppRemoting
HolographicRemoting.ConnectRemotingSession() AppRemoting.Connect(RemotingConfiguration)
HolographicRemoting.DisconnectRemotingSession() AppRemoting.Disconnect()
HolographicRemoting.ConnectionState AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)

UnityEngine.XR.WindowsMR. WindowsMRRemoting

XR.WindowsMR. WindowsMRRemoting OpenXR.Remoting.AppRemoting
WindowsMRRemoting.Connect() AppRemoting.Connect(RemotingConfiguration)
WindowsMRRemoting.Listen() AppRemoting.Listen(RemotingListenConfiguration)
WindowsMRRemoting.Disconnect() AppRemoting.Disconnect()
WindowsMRRemoting.TryGetConnectionState(out ConnectionState) et WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
WindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineName Passé dans AppRemoting.Connect via le RemotingConfiguration struct
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected

Voir aussi