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.
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
Na pasku menu wybierz pozycję Edytuj > ustawienia projektu.
W kolumnie po lewej stronie wybierz pozycję Zarządzanie wtyczką XR.
Upewnij się, że jesteś na karcie ustawień platforma uniwersalna systemu Windows.
W sekcji Wtyczka OpenXR wybierz grupę funkcji Microsoft HoloLens i grupę funkcjizdalnej aplikacji Holographic Remoting.
Usuń zaznaczenie pola wyboru Inicjuj XR podczas uruchamiania .
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.
W przypadku trybu 1 tryb połącz wywołaj
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect
element z wypełnionym elementemRemotingConfiguration
. Przykładowa aplikacja uwidacznia to w inspektorze i pokazuje, jak wypełnić adres IP z pola tekstowego. WywołanieConnect
spowoduje ustawienie konfiguracji i automatyczne zainicjowanie XR, dlatego musi być wywoływana jako coroutine:StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
W przypadku trybu 2 tryb nasłuchiwania wywołaj
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen
za pomocą wypełnionegoRemotingListenConfiguration
elementu . Przykładowa aplikacja uwidacznia to w inspektorze. WywołanieListen
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));
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 poleceniaAppRemoting.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:
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.
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:
- 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".
Aby uruchomić na HoloLens 2 przy użyciu sieci Wi-Fi:
- Skonfiguruj opcje kompilacji, jak pokazano poniżej:
- 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.
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".
W aplikacji zdalnej uruchomionej na komputerze hosta dodaj adres IP HoloLens 2 wyświetlonej powyżej, a następnie wybierz pozycję Połącz.
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.
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.
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 |