Verwenden von PC-Ressourcen zum Powern Ihrer App mit Holographic Remoting-Remote-App

In diesem Artikel wird der folgende Anwendungsfall für Holographic Remoting erläutert:

  • Sie möchten, dass die Ressourcen eines PCs Ihre App mit Energie versorgt, anstatt sich auf die on-board-Ressourcen von HoloLens zu verlassen: Sie können eine App mit Holographic Remoting-Funktion erstellen und erstellen. Der Benutzer erlebt die App auf der HoloLens, aber die App wird tatsächlich auf einem PC ausgeführt, sodass die App die leistungsstärkeren Ressourcen des PCs nutzen kann. Dies kann besonders hilfreich sein, wenn Ihre App über Objekte oder Modelle mit hoher Auflösung verfügt und Sie nicht möchten, dass die Bildfrequenz beeinträchtigt wird. Wir nennen dies eine Holographic Remoting-Remote-App. Eingaben von HoloLens – Blick, Geste, Stimme und räumliche Zuordnung – werden an den PC gesendet, wo der Inhalt in einer virtuellen immersiven Ansicht gerendert wird. Die gerenderten Frames werden dann an die HoloLens gesendet.

Diese Art von Holographic Remoting ist auch für immersive Windows Mixed Reality -Headsets (WMR) verfügbar. Dies kann nützlich sein, wenn Ihr WMR-Headset beispielsweise mit einem Rucksack-PC verbunden ist und Sie Ihre App von einem leistungsstärkeren PC auf den Rucksack-PC streamen möchten.

Weitere Informationen zu Holographic Remoting finden Sie unter Holographic Remoting – Übersicht.

Beachten Sie, dass Sie Holographic Remoting auch verwenden können, wenn Sie ihre App während des Entwicklungsprozesses in der Vorschau anzeigen und debuggen möchten.

Zwei verfügbare Modi in Holographic Remoting

Modus 1: Remote-App, die auf dem PC im Verbindungsmodus ausgeführt wird, Player wird auf der HoloLens 2 im Lauschmodus ausgeführt.

Der Player lauscht auf die eingehenden Verbindungen, während die Remote-App versucht, eine Verbindung herzustellen.

Modus 2: Remote-App, die auf dem PC im Lauschmodus ausgeführt wird, Player wird auf der HoloLens 2 im Verbindungsmodus ausgeführt.

Die Remote-App lauscht auf eingehende Verbindungen, während der Player versucht, eine Verbindung herzustellen.

Einrichten der Holographic Remoting Player-App

Um Holographic Remoting allein im Modus 1 zu verwenden, installieren Sie die Holographic Remoting Player-App aus dem Microsoft Store auf Ihrem HoloLens 2 (in diesem Artikel wird es einfach als "Player" bezeichnet). Wie unten erläutert, werden nach dem Herunterladen und Ausführen der App die Versionsnummer und die IP-Adresse angezeigt, mit der eine Verbindung hergestellt werden soll. Es wird empfohlen, die neueste verfügbare Version des Players zu verwenden.

Holographic Remoting erfordert einen schnellen PC und Wi-Fi Verbindung. Weitere Details finden Sie im oben verlinkten Player-Artikel.

Screenshot: Holographic Remoting Player, der in holoLens ausgeführt wird

Um Holographic Remoting in beiden oben angegebenen Modi verwenden zu können, müssen Sie den Holographic Remoting Sample Player klonen und ihn mithilfe von Visual Studio im HoloLens 2 bereitstellen.

Erstellen einer Remote-App, die auf dem PC für Holographic Remoting ausgeführt wird, mithilfe von Unity

  1. Wählen Sie auf der Menüleiste Projekteinstellungen bearbeiten >aus.

  2. Wählen Sie in der linken Spalte XR-Plug-In-Verwaltung aus.

  3. Stellen Sie sicher, dass Sie sich auf der Registerkarte Universelle Windows-Plattform Einstellungen befinden.

    Screenshot: XR-Plug im Verwaltungsfenster mit ausgewählter Registerkarte Universelle Windows-Plattform

  4. Wählen Sie im Abschnitt OpenXR-Plug-InMicrosoft HoloLens Featuregruppe und Holographic Remoting Remote-App-Featuregruppe aus.

    Screenshot: OpenXr-Plug-In mit ausgewählter Option

  5. Deaktivieren Sie das Kontrollkästchen XR beim Start initialisieren .

    Screenshot: Fenster

  6. Schreiben Sie Code, um die Remotingkonfiguration festzulegen und die XR-Initialisierung auszulösen. Die App kann entweder die Connect-Funktion für Modus 1 oder die Listenfunktion für Modus 2 aufrufen. Um ein Beispiel anzuzeigen, laden Sie unsere Open XR Unity Mixed Reality-Beispiele herunter, und zeigen Sie dann im RemotingSample-Projekt das Skript AppRemoting.cs an.

  7. Rufen Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect Sie für Modus 1 den Verbindungsmodus mit einem ausgefüllten RemotingConfigurationauf. Die Beispiel-App macht dies im Inspektor verfügbar und zeigt, wie die IP-Adresse aus einem Textfeld ausgefüllt wird. Durch aufrufen Connect wird die Konfiguration festgelegt und XR automatisch initialisiert, weshalb es als Coroutine aufgerufen werden muss:

    StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
    
  8. Rufen Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen Sie für Modus 2 den Listenmodus mit einem ausgefüllten RemotingListenConfigurationauf. Die Beispiel-App macht dies im Inspektor verfügbar. Durch aufrufen Listen wird die Konfiguration festgelegt und auf eine Verbindung aus dem Holographic Remoting-Beispielplayer gewartet, weshalb er als Coroutine aufgerufen werden muss:

    StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
    
  9. Während der Ausführung können Sie den aktuellen Verbindungsstatus mit der AppRemoting.TryGetConnectionState API abrufen und optional die Verbindung trennen und XR mithilfe von AppRemoting.Disconnect()aufheben. Dies kann verwendet werden, um die Verbindung mit einem anderen Gerät innerhalb derselben App-Sitzung zu trennen und erneut eine Verbindung mit einem anderen Gerät herzustellen. Die RemotingSample-App stellt einen abhörbaren Cube bereit, der die Remotingsitzung trennt, wenn sie angetippt wird.

Ausführen der Holographic Remoting-Remote-App und der Player-App in den oben beschriebenen Modi

Modus 1: Führen Sie die Holographic Remoting-Remote-App auf dem PC im Verbindungsmodus und den Player im Lauschmodus aus:

  1. Wenn der Player bereits aus dem Store auf der HoloLens 2 installiert ist, überspringen Sie die Schritte 2 und 3 unten, in denen Sie die Beispielplayer-App erstellen und ausführen. Führen Sie stattdessen den installierten Player aus, und fahren Sie mit Schritt 4 fort.

  2. Öffnen Sie die App Holographic Remoting Sample Player mit VS 2019, und führen Sie dann eine der folgenden Aktionen aus:

    So führen Sie die Ausführung auf einem HoloLens 2 mithilfe eines USB-Kabels aus:

    • Konfigurieren Sie die Buildoptionen wie hier gezeigt:

    Screenshot der Visual Studio-Buildeinstellungen für, wenn der Benutzer über ein USB-Kabel verbunden ist.

    • Öffnen Sie die Seite Eigenschaften für das Projekt, und navigieren Sie dann zuDebuggen von Konfigurationseigenschaften>.
    • Klicken Sie auf die Dropdownliste Debugger, um zu starten , und wählen Sie dann Gerät aus.
    • Fügen Sie im Feld Befehlszeilenargumente "-listen" hinzu.

    Screenshot der Befehlszeilenargumente für das Erstellen mit einem USB-Kabel.

    So führen Sie die Ausführung auf einem HoloLens 2 mit WLAN aus:

    • Konfigurieren Sie die Buildoptionen wie hier gezeigt:

    Screenshot der Visual Studio-Buildeinstellungen für, wenn der Benutzer die HoloLens mithilfe von WLAN erstellt.

    • Öffnen Sie die Seite Eigenschaften für das Projekt, und navigieren Sie dann zuDebuggen von Konfigurationseigenschaften>.
    • Klicken Sie auf die Dropdownliste Debugger, um zu starten , und wählen Sie dann Remotecomputer aus.
    • Fügen Sie im Feld Befehlszeilenargumente die WIFI-IP-Adresse der HoloLens hinzu.
  3. Um die SamplePlayer-Projektmappe im HoloLens 2 bereitzustellen, drücken Sie die Wiedergabeschaltfläche in Visual Studio. Sie können sehen, dass der HAR-Beispielplayer auf HoloLens 2 ausgeführt wird, und zeigt an, dass er "Warten auf eine Verbindung über die IP-Adresse von HoloLens 2" lautet.

  4. Fügen Sie in der Remote-App, die auf dem Host-PC ausgeführt wird, die IP-Adresse der oben angezeigten HoloLens 2 hinzu, und wählen Sie dann Verbinden aus.

  5. Nachdem die Verbindung hergestellt wurde, beginnt der Player, der auf HoloLens 2 ausgeführt wird, "empfängt".

Modus 2: Führen Sie die Remote-App auf Ihrem PC im Lauschmodus und die HAR-Player-App im Verbindungsmodus aus:

  • Klicken Sie auf dem Bildschirm der 2D-Benutzeroberfläche in der Remote-App, die auf dem PC ausgeführt wird, auf Lauschen.

    Screenshot der Visual Studio-Buildeinstellungen für, wenn der Benutzer über ein USB-Kabel verbunden ist.

  • Öffnen Sie die Seite Eigenschaften für das Projekt, und navigieren Sie dann zuDebuggen von Konfigurationseigenschaften>.

  • Klicken Sie auf die Dropdownliste Debugger, um zu starten , und wählen Sie dann Gerät aus.

  • Fügen Sie im Feld Befehlszeilenargumente die IP-Adresse des Host-PCs hinzu.

Screenshot der Befehlszeilenargumente für das Erstellen mit einem USB-Kabel.

  • Um die SamplePlayer-Projektmappe im HoloLens 2 bereitzustellen, klicken Sie in der Visual Studio-Projektmappe auf die Schaltfläche wiedergabe. Sie können sehen, wie der HAR-Beispielplayer auf der HoloLens 2 ausgeführt wird, und zeigt an, dass es sich um "Herstellen einer Verbindung mit der in Befehlszeilenargumenten angegebenen IP-Adresse" handelt.

  • Nachdem die Verbindung hergestellt wurde, startet die Holographic Remoting Sample Player-App, die auf dem HoloLens 2 ausgeführt wird, "Empfangen".

Tipp

Um optimale Ergebnisse zu erzielen, stellen Sie sicher, dass Ihre App die .. /focus point. Dies hilft Holographic Remoting, Ihre Szene am besten an die Latenz Ihrer drahtlosen Verbindung anzupassen.

Migrieren von vorherigen Holographic Remoting-APIs

Weitere Informationen zu Holographic Remoting finden Sie unter Holographic Remoting – Übersicht.

UnityEngine.XR.WSA.HolographicRemoting

Aus dem Beispielcode in der Unity-Dokumentation:

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) und WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
WindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineName Übergeben AppRemoting.Connect in über die RemotingConfiguration -Struktur
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected

Weitere Informationen