Använda PC-resurser för att driva din app med fjärrappen Holographic Remoting
Den här artikeln förklarar följande användningsfall för Holographic Remoting:
- Du vill att en dators resurser ska kunna driva din app i stället för att förlita dig på de inbyggda HoloLens-resurserna: Du kan skapa och skapa en app som har holografisk fjärrkommunikationsfunktion. Användaren upplever appen på HoloLens, men appen körs faktiskt på en dator, vilket gör att appen kan dra nytta av datorns mer kraftfulla resurser. Detta kan vara särskilt användbart om din app har högupplösta tillgångar eller modeller och du inte vill att bildfrekvensen ska drabbas. Vi kallar detta en fjärrapp för Holographic Remoting. Indata från HoloLens – blick, gest, röst och rumslig mappning – skickas till datorn, där innehållet återges i en virtuell fördjupad vy. De renderade ramarna skickas sedan till HoloLens.
Den här typen av Holographic Remoting är också tillgänglig för Windows Mixed Reality (WMR) integrerande headset. Detta kan vara användbart om till exempel ditt WMR-headset är anslutet till en ryggsäcksdator och du vill strömma din app från en kraftfullare dator till ryggsäcksdatorn.
Mer information om Holographic Remoting finns i Holographic Remoting Overview (Översikt över holografisk fjärrkommunikation)
Observera att du också kan använda Holographic Remoting om du vill förhandsgranska och felsöka din app under utvecklingsprocessen.
Två tillgängliga lägen i Holographic Remoting
Läge 1: Fjärrapp som körs på datorn i anslutningsläge, Spelare som körs på HoloLens 2 i lyssnarläge.
Spelaren lyssnar på inkommande anslutningar medan fjärrappen försöker ansluta.
Läge 2: Fjärrapp som körs på datorn i lyssnarläge, spelare som körs på HoloLens 2 i anslutningsläge.
Fjärrappen lyssnar efter inkommande anslutningar medan spelaren försöker ansluta.
Konfigurera Holographic Remoting Player-appen
Om du bara vill använda Holographic Remoting i läge 1 installerar du appen Holographic Remoting Player från Microsoft Store på din HoloLens 2 (i den här artikeln refererar vi till den helt enkelt som "spelaren"). Som förklaras nedan visas versionsnumret och IP-adressen för att ansluta till när du har laddat ned och kört appen. Vi rekommenderar att du använder den senaste versionen av spelaren som är tillgänglig.
Holographic Remoting kräver en snabb dator och Wi-Fi anslutning. Mer information finns i artikeln Player (Spelare) som är länkad ovan.
Om du vill använda Holographic Remoting i båda lägena som anges ovan måste du klona Holographic Remoting Sample player och distribuera den till HoloLens 2 med Visual Studio.
Skapa en fjärrapp som körs på datorn för Holographic Remoting med hjälp av Unity
Välj Redigera > projektinställningar på menyraden.
I kolumnen till vänster väljer du XR-plugin-hantering.
Kontrollera att du är på fliken Universell Windows-plattform inställningar.
I avsnittet OpenXR-plugin-program väljer du Microsoft HoloLens funktionsgrupp och holografisk fjärrkommunikationsappfunktionsgrupp.
Avmarkera kryssrutan Initiera XR vid start .
Skriv kod för att ange fjärrkommunikationskonfigurationen och utlösa XR-initiering. Appen kan antingen anropa connect-funktionen för läge 1 eller anropa lyssnarfunktionen för läge 2. Om du vill se ett exempel laddar du ned våra Open XR Unity-Mixed Reality-exempel och går sedan till remotingSample-projektet och visar skriptet AppRemoting.cs.
För Läge 1 anropar
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect
du med en ifylldRemotingConfiguration
. Exempelappen visar detta i Inspector och visar hur du fyller i IP-adressen från ett textfält. AnropConnect
anger konfigurationen och initierar automatiskt XR, vilket är anledningen till att det måste anropas som en coroutine:StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
För Läge 2 anropar
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen
du i lyssningsläget med en ifylldRemotingListenConfiguration
. Exempelappen visar detta i Inspector. AnropetListen
ställer in konfigurationen och väntar på en anslutning från Holographic Remoting-exempelspelaren, vilket är anledningen till att den måste anropas som en coroutine:StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
När du kör kan du hämta det aktuella anslutningstillståndet med API:et
AppRemoting.TryGetConnectionState
och eventuellt koppla från och avinitiera XR med hjälp avAppRemoting.Disconnect()
. Detta kan användas för att koppla från och återansluta till en annan enhet inom samma appsession. Appen RemotingSample innehåller en kransbar kub som kopplar från fjärrkommunikationssessionen om den knackas.
Kör fjärrappen Holographic Remoting och Player-appen i de lägen som beskrivs ovan
Läge 1: Kör fjärrappen Holographic Remoting på datorn i anslutningsläge och spelaren i lyssningsläge:
Om Spelaren redan är installerad från butiken på HoloLens 2 hoppar du över stegnummer 2 och 3 nedan där du skapar och kör exempelspelarappen. Kör i stället den installerade spelaren och fortsätt med steg 4.
Öppna appen Holographic Remoting Sample Player med VS 2019 och gör sedan något av följande:
Så här kör du på en HoloLens 2 med en USB-kabel:
- Konfigurera byggalternativen enligt nedan:
- Öppna sidan Egenskaper för projektet och gå sedan tillFelsökning av konfigurationsegenskaper>.
- Klicka på felsökningsprogrammet för att starta listrutan och välj sedan Enhet.
- I fältet Kommandoradsargument lägger du till "-listen".
Så här kör du på en HoloLens 2 med Wifi:
- Konfigurera byggalternativen enligt nedan:
- Öppna sidan Egenskaper för projektet och gå sedan tillFelsökning av konfigurationsegenskaper>.
- Klicka på felsökningsprogrammet för att starta listrutan och välj sedan Fjärrdator.
- I fältet Kommandoradsargument lägger du till Wifi-IP-adressen för HoloLens.
Om du vill distribuera SamplePlayer-lösningen till HoloLens 2 trycker du på uppspelningsknappen i Visual Studio. Du kommer att kunna se ATT HAR-exempelspelaren körs på HoloLens 2 och visa att det är "Väntar på en anslutning på IP-adressen för HoloLens 2".
I fjärrappen som körs på värddatorn lägger du till IP-adressen för HoloLens 2 som visas ovan och väljer sedan Anslut.
När anslutningen har upprättats startar spelaren som körs på HoloLens 2 "Tar emot".
Läge 2: Kör fjärrappen på datorn i lyssnarläge och HAR-spelarappen i anslutningsläge:
På 2D-UI-skärmen i fjärrappen som körs på datorn klickar du på Lyssna.
Öppna sidan Egenskaper för projektet och gå sedan tillFelsökning av konfigurationsegenskaper>.
Klicka på felsökningsprogrammet för att starta listrutan och välj sedan Enhet.
I fältet Kommandoradsargument lägger du till IP-adressen för värddatorn.
Om du vill distribuera SamplePlayer-lösningen till HoloLens 2 klickar du på uppspelningsknappen i Visual Studio-lösningen. Du kommer att kunna se ATT HAR-exempelspelaren körs på HoloLens 2 och visa att det är "Ansluta till IP-adress som anges i kommandoradsargument".
När anslutningen har upprättats startar Holographic Remoting Sample Player-appen som körs på HoloLens 2 "Mottagning".
Tips
För bästa resultat kontrollerar du att appen har rätt inställningar för .. /focus point. Detta hjälper Holographic Remoting att på bästa sätt anpassa din scen till svarstiden för din trådlösa anslutning.
Migrera från tidigare Holographic Remoting-API:er
Mer information om Holographic Remoting finns i Holographic Remoting Overview (Översikt över holografisk fjärrkommunikation)
UnityEngine.XR.WSA.HolographicRemoting
Från exempelkoden i Unitys dokument:
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) och WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) |
AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason) |
WindowsMRRemoting.isAudioEnabled , WindowsMRRemoting.maxBitRateKbps , WindowsMRRemoting.remoteMachineName |
Skickas in AppRemoting.Connect via structen RemotingConfiguration |
WindowsMRRemoting.isConnected |
AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected |