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 Strom versorgt, anstatt sich auf die onboard-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 hochauflösende Ressourcen oder Modelle verfügt und Sie nicht möchten, dass die Bildfrequenz beeinträchtigt wird. Wir nennen dies eine Holographic Remoting-Remote-App. Eingaben der HoloLens – Anvisieren, Gesten, Sprache 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 leistungsfähigeren 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, der auf dem HoloLens 2 im Lauschmodus ausgeführt wird.
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, der auf dem HoloLens 2 im Verbindungsmodus ausgeführt wird.
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 sie 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.
Um Holographic Remoting in beiden oben angegebenen Modi zu verwenden, müssen Sie den Holographic Remoting-Beispielplayer klonen und ihn mithilfe von Visual Studio im HoloLens 2 bereitstellen.
Erstellen einer Remote-App, die auf dem PC für Holographic Remoting mit Unity ausgeführt wird
Wählen Sie auf der Menüleiste Projekteinstellungen bearbeiten >aus.
Wählen Sie in der linken Spalte XR-Plug-In-Verwaltung aus.
Stellen Sie sicher, dass Sie sich auf der Registerkarte Universelle Windows-Plattform Einstellungen befinden.
Wählen Sie im Abschnitt OpenXR-Plug-InMicrosoft HoloLens Featuregruppe und feature group Holographic Remoting remote app aus.
Deaktivieren Sie das Kontrollkästchen XR beim Start initialisieren .
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 Listen-Funktion 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 AppRemoting.cs-Skript an.
Rufen Sie
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect
für Modus 1 im Verbindungsmodus mit einem ausgefülltenRemotingConfiguration
auf. Die Beispiel-App macht dies im Inspektor verfügbar und zeigt, wie die IP-Adresse aus einem Textfeld ausgefüllt wird. Durch aufrufenConnect
wird die Konfiguration festgelegt und XR automatisch initialisiert, weshalb es als Coroutine aufgerufen werden muss:StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
Rufen
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen
Sie für Modus 2, den Lauschenmodus, mit einem ausgefülltenRemotingListenConfiguration
auf. Die Beispiel-App macht dies im Inspektor verfügbar. Der AufrufListen
von legt die Konfiguration fest und wartet auf eine Verbindung vom Holographic Remoting-Beispielplayer, weshalb er als Coroutine aufgerufen werden muss:StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
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 vonAppRemoting.Disconnect()
aufheben. Dies kann verwendet werden, um die Verbindung mit einem anderen Gerät innerhalb derselben App-Sitzung zu trennen und wiederherzustellen. Die RemotingSample-App stellt einen abhörbaren Cube bereit, der die Remotingsitzung beim Tippen trennt.
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:
Wenn der Player bereits aus dem Store auf dem 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.
Öffnen Sie die App Holographic Remoting Sample Player mithilfe von 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:
- Öffnen Sie die Seite Eigenschaften für das Projekt, und navigieren Sie dann zu Konfigurationseigenschaften>Debuggen.
- 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.
So führen Sie auf einem HoloLens 2 mit WLAN aus:
- Konfigurieren Sie die Buildoptionen wie hier gezeigt:
- Öffnen Sie die Seite Eigenschaften für das Projekt, und navigieren Sie dann zu Konfigurationseigenschaften>Debuggen.
- Klicken Sie auf die Dropdownliste Debugger, um zu starten , und wählen Sie dann Remotecomputer aus.
- Fügen Sie im Feld Befehlszeilenargumente die WLAN-IP-Adresse der HoloLens hinzu.
Um die SamplePlayer-Projektmappe im HoloLens 2 bereitzustellen, drücken Sie die Wiedergabeschaltfläche in Visual Studio. Sie können sehen, wie der HAR-Beispielplayer auf HoloLens 2 ausgeführt wird und anzeigt, dass er "Warten auf eine Verbindung über die IP-Adresse von HoloLens 2" lautet.
Fügen Sie in der Remote-App, die auf dem Host-PC ausgeführt wird, die IP-Adresse des oben angezeigten HoloLens 2 hinzu, und wählen Sie dann Verbinden aus.
Nachdem die Verbindung hergestellt wurde, startet der Player, der auf HoloLens 2 ausgeführt wird, "Empfangen".
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.
Öffnen Sie die Seite Eigenschaften für das Projekt, und navigieren Sie dann zu Konfigurationseigenschaften>Debuggen.
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.
Um die SamplePlayer-Projektmappe im HoloLens 2 bereitzustellen, klicken Sie in der Visual Studio-Projektmappe auf die Wiedergabeschaltfläche. Sie können sehen, wie der HAR-Beispielplayer auf dem HoloLens 2 ausgeführt wird und anzeigt, dass es sich um "Verbindung mit ip-Adresse in Befehlszeilenargumenten" 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-Punkt. 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 in AppRemoting.Connect über die RemotingConfiguration -Struktur |
WindowsMRRemoting.isConnected |
AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected |