Używanie zasobów komputera do zasilania aplikacji za pomocą zdalnej aplikacji Holographic Remoting

W tym artykule opisano następujący przypadek użycia usługi Holographic Remoting:

  • Chcesz, aby zasoby komputera mogły zasilać aplikację zamiast polegać na zasobach na pokładzie urządzenia HoloLens: możesz utworzyć i utworzyć aplikację, która ma możliwość komunikacji zdalnie holograficznej. Użytkownik korzysta z aplikacji na urządzeniu HoloLens, ale aplikacja działa na komputerze, co umożliwia aplikacji korzystanie z bardziej zaawansowanych zasobów komputera. Może to być szczególnie przydatne, jeśli aplikacja ma zasoby lub modele o wysokiej rozdzielczości i nie chcesz, aby częstotliwość ramek ucierpiała. Nazywamy to zdalną aplikacją Holographic Remoting. Dane wejściowe z urządzenia HoloLens — spojrzenie, gest, głos i mapowanie przestrzenne — są wysyłane do komputera, gdzie zawartość jest renderowana w wirtualnym widoku immersyjnym. Renderowane ramki są następnie wysyłane do urządzenia HoloLens.

Ten typ komunikacji wirtualnej Holographic Remoting jest również dostępny dla Windows Mixed Reality (WMR) immersyjnych zestawów słuchawkowych. Może to być przydatne, jeśli na przykład zestaw słuchawkowy WMR jest podłączony do komputera plecakowego i chcesz przesyłać strumieniowo aplikację z bardziej wydajnego komputera do komputera plecakowego.

Aby dowiedzieć się więcej o holographic Remoting, zobacz Holographic Remoting Overview

Pamiętaj, że możesz również użyć komunikacji zdalnie holographic, jeśli chcesz wyświetlić podgląd i debugować aplikację podczas procesu programowania.

Dwa dostępne tryby w Holographic Remoting

Tryb 1: Zdalna aplikacja uruchomiona na komputerze w trybie Nawiązywanie połączenia, Odtwarzacz uruchomiony na HoloLens 2 w trybie nasłuchiwania.

Odtwarzacz nasłuchuje połączeń przychodzących, gdy aplikacja zdalna próbuje nawiązać połączenie.

Tryb 2: Zdalna aplikacja uruchomiona na komputerze w trybie nasłuchiwania, odtwarzacz uruchomiony na HoloLens 2 w trybie łączenia.

Aplikacja zdalna nasłuchuje połączeń przychodzących, gdy gracz próbuje nawiązać połączenie.

Konfigurowanie aplikacji Holographic Remoting Player

Aby użyć funkcji remotingu Holographic w trybie 1, zainstaluj aplikację Holographic Remoting Player ze Sklepu Microsoft w HoloLens 2 (w tym artykule po prostu odwołujemy się do niej jako "odtwarzacz"). Jak wyjaśniono poniżej, po pobraniu i uruchomieniu aplikacji zobaczysz numer wersji i adres IP do nawiązania połączenia. Zalecamy użycie najnowszej dostępnej wersji odtwarzacza.

Holographic Remoting wymaga szybkiego komputera i Wi-Fi połączenia. Więcej szczegółów można znaleźć w artykule Odtwarzacz połączonym powyżej.

Zrzut ekranu przedstawiający odtwarzacz Holographic Remoting Player uruchomiony w urządzeniu HoloLens

Aby użyć komunikacji zdalnie holographic w obu trybach określonych powyżej, należy sklonować odtwarzacz Holographic Remoting Sample i wdrożyć go w HoloLens 2 przy użyciu programu Visual Studio.

Tworzenie zdalnej aplikacji uruchomionej na komputerze na potrzeby komunikacji zdalnej holograficznej przy użyciu aparatu Unity

  1. Na pasku menu wybierz pozycję Edytuj > ustawienia projektu.

  2. W kolumnie po lewej stronie wybierz pozycję Zarządzanie wtyczką XR.

  3. Upewnij się, że jesteś na karcie ustawień platforma uniwersalna systemu Windows.

    Zrzut ekranu przedstawiający XR-Plug w oknie Zarządzanie z wybraną kartą platforma uniwersalna systemu Windows.

  4. W sekcji Wtyczka OpenXR wybierz grupę funkcji Microsoft HoloLens i grupę funkcjizdalnej aplikacji Holographic Remoting.

    Zrzut ekranu przedstawiający wtyczkę OpenXr z wybraną grupą funkcji

  5. Usuń zaznaczenie pola wyboru Inicjuj XR podczas uruchamiania .

    Zrzut ekranu przedstawiający okno zarządzanie wtyczką XR z niezaznaczonym wyborem

  6. Napisz kod, aby ustawić konfigurację komunikacji wirtualnej i wyzwolić inicjowanie XR. Aplikacja może wywołać funkcję Connect dla trybu 1 lub wywołać funkcję Listen dla trybu 2. Aby zobaczyć przykład, pobierz nasze przykłady Mixed Reality open XR Unity, a następnie w projekcie RemotingSample wyświetl skrypt AppRemoting.cs.

  7. W przypadku trybu 1 tryb połącz wywołaj Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect element z wypełnionym elementem RemotingConfiguration. Przykładowa aplikacja uwidacznia to w inspektorze i pokazuje, jak wypełnić adres IP z pola tekstowego. Wywołanie Connect spowoduje ustawienie konfiguracji i automatyczne zainicjowanie XR, dlatego musi być wywoływana jako coroutine:

    StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
    
  8. W przypadku trybu 2 tryb nasłuchiwania wywołaj Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen za pomocą wypełnionego RemotingListenConfigurationelementu . Przykładowa aplikacja uwidacznia to w inspektorze. Wywołanie Listen spowoduje ustawienie konfiguracji i poczekanie na połączenie z przykładowego odtwarzacza Holographic Remoting, dlatego musi być wywoływana jako coroutine:

    StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
    
  9. Podczas uruchamiania można uzyskać bieżący stan połączenia za pomocą interfejsu AppRemoting.TryGetConnectionState API i opcjonalnie rozłączyć i wyłączyć inicjowanie XR przy użyciu polecenia AppRemoting.Disconnect(). Może to służyć do rozłączania i ponownego nawiązywania połączenia z innym urządzeniem w ramach tej samej sesji aplikacji. Aplikacja RemotingSample udostępnia moduł tappable, który rozłączy sesję komunikacji zdalną, jeśli zostanie naciśnięty.

Uruchom zdalną aplikację Holographic Remoting i aplikację Player w trybach opisanych powyżej

Tryb 1: Uruchom zdalną aplikację zdalną Holographic Remoting na komputerze w trybie łączenia i odtwarzaczu w trybie nasłuchiwania:

  1. Jeśli odtwarzacz jest już zainstalowany ze sklepu w HoloLens 2, pomiń kroki 2 i 3 poniżej, gdzie skompilujesz i uruchomisz aplikację Sample Player. Zamiast tego uruchom zainstalowany odtwarzacz i przejdź do kroku 4.

  2. Otwórz aplikację Holographic Remoting Sample Player przy użyciu programu VS 2019, a następnie wykonaj jedną z następujących czynności:

    Aby uruchomić na HoloLens 2 przy użyciu kabla USB:

    • Skonfiguruj opcje kompilacji, jak pokazano poniżej:

    Zrzut ekranu przedstawiający ustawienia kompilacji programu Visual Studio, jeśli użytkownik jest podłączony za pośrednictwem kabla USB.

    • Otwórz stronę Właściwości projektu, a następnie przejdź dopozycji Debugowaniewłaściwości> konfiguracji.
    • Kliknij listę rozwijaną Debuger, aby uruchomić , a następnie wybierz pozycję Urządzenie.
    • W polu Argumenty wiersza polecenia dodaj "-listen".

    Zrzut ekranu przedstawiający argumenty wiersza polecenia służące do kompilowania przy użyciu kabla USB.

    Aby uruchomić na HoloLens 2 przy użyciu sieci Wi-Fi:

    • Skonfiguruj opcje kompilacji, jak pokazano poniżej:

    Zrzut ekranu przedstawiający ustawienia kompilacji programu Visual Studio, jeśli użytkownik kompiluje urządzenie HoloLens przy użyciu sieci Wi-Fi.

    • Otwórz stronę Właściwości projektu, a następnie przejdź dopozycji Debugowaniewłaściwości> konfiguracji.
    • Kliknij listę rozwijaną Debuger, aby uruchomić , a następnie wybierz pozycję Maszyna zdalna.
    • W polu Argumenty wiersza polecenia dodaj adres IP sieci Wi-Fi urządzenia HoloLens.
  3. Aby wdrożyć rozwiązanie SamplePlayer w HoloLens 2, naciśnij przycisk odtwarzania w programie Visual Studio. Zobaczysz przykładowy odtwarzacz HAR uruchomiony na HoloLens 2, wyświetlając komunikat "Oczekiwanie na połączenie na adres IP HoloLens 2".

  4. W aplikacji zdalnej uruchomionej na komputerze hosta dodaj adres IP HoloLens 2 wyświetlonej powyżej, a następnie wybierz pozycję Połącz.

  5. Po nawiązaniu połączenia gracz uruchomiony na HoloLens 2 rozpocznie "Odbieranie".

Tryb 2: Uruchom aplikację zdalną na komputerze w trybie nasłuchiwania i aplikacji odtwarzacza HAR w trybie łączenia:

  • Na ekranie interfejsu użytkownika 2D w aplikacji zdalnej uruchomionej na komputerze kliknij przycisk Nasłuchiwanie.

    Zrzut ekranu przedstawiający ustawienia kompilacji programu Visual Studio, jeśli użytkownik jest podłączony za pośrednictwem kabla USB.

  • Otwórz stronę Właściwości projektu, a następnie przejdź dopozycji Debugowaniewłaściwości> konfiguracji.

  • Kliknij listę rozwijaną Debuger, aby uruchomić , a następnie wybierz pozycję Urządzenie.

  • W polu Argumenty wiersza polecenia dodaj adres IP komputera hosta.

Zrzut ekranu przedstawiający argumenty wiersza polecenia służące do kompilowania przy użyciu kabla USB.

  • Aby wdrożyć rozwiązanie SamplePlayer w HoloLens 2, w rozwiązaniu programu Visual Studio kliknij przycisk odtwarzania. Zobaczysz przykładowy odtwarzacz HAR uruchomiony na HoloLens 2, wyświetlając, że jest wyświetlany komunikat "Nawiązywanie połączenia z adresem IP podanym w argumentach wiersza polecenia".

  • Po nawiązaniu połączenia aplikacja Holographic Remoting Sample Player uruchomiona w HoloLens 2 rozpocznie "Odbieranie".

Porada

Aby uzyskać najlepsze wyniki, upewnij się, że aplikacja poprawnie ustawia wartość .. /focus point. Pomaga to Holographic Remoting najlepiej dostosować scenę do opóźnienia połączenia bezprzewodowego.

Migrowanie z poprzednich interfejsów API usługi Holographic Remoting

Aby dowiedzieć się więcej o holographic Remoting, zobacz Holographic Remoting Overview

UnityEngine.XR.WSA.HolographicRemoting

Z przykładowego kodu w dokumentacji aparatu 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) i WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
WindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineName Przekazano do AppRemoting.Connect elementu za pośrednictwem RemotingConfiguration struktury
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected

Zobacz też