Usare le risorse del PC per alimentare l'app con l'app remota Holographic Remoting
Questo articolo illustra il caso d'uso seguente per Holographic Remoting:
- Si vuole che le risorse di un PC possano alimentare l'app invece di basarsi sulle risorse di HoloLens a bordo: è possibile creare e compilare un'app con funzionalità di Holographic Remoting. L'utente sperimenta l'app in HoloLens, ma l'app viene effettivamente eseguita in un PC, che consente all'app di sfruttare le risorse più potenti del PC. Ciò può risultare particolarmente utile se l'app dispone di asset o modelli ad alta risoluzione e non si vuole che la frequenza dei fotogrammi subisca un problema. Questo nome è un'app remota Holographic Remoting. Gli input da HoloLens- sguardo fisso, movimento, voce e mapping spaziale- vengono inviati al PC, in cui viene eseguito il rendering del contenuto in una visualizzazione immersiva virtuale. I fotogrammi sottoposti a rendering vengono quindi inviati a HoloLens.
Questo tipo di Holographic Remoting è disponibile anche per visori VR immersive Windows Mixed Reality (WMR). Questo può essere utile se, ad esempio, il visore VR WMR è collegato a un PC zaino e vuoi trasmettere la tua app da un PC più potente al PC dello zaino.
Per altre informazioni su Holographic Remoting, vedere Holographic Remoting Overview (Panoramica di Holographic Remoting)
Tieni presente che puoi anche usare Holographic Remoting se vuoi visualizzare in anteprima ed eseguire il debug dell'app durante il processo di sviluppo.
Due modalità disponibili in Holographic Remoting
Modalità 1: app remota in esecuzione su PC in modalità Connetti, lettore in esecuzione sul HoloLens 2 in modalità di ascolto.
Il lettore rimane in ascolto delle connessioni in ingresso mentre l'app remota tenta di connettersi.
Modalità 2: app remota in esecuzione su PC in modalità di ascolto, lettore in esecuzione sul HoloLens 2 in modalità di connessione.
L'app remota è in ascolto delle connessioni in ingresso durante il tentativo di connessione del lettore.
Configurare l'app Holographic Remoting Player
Per usare Holographic Remoting in modalità 1 da solo, installare l'app Holographic Remoting Player da Microsoft Store nel HoloLens 2 (in questo articolo verrà fatto riferimento semplicemente come "lettore"). Come illustrato di seguito, dopo aver scaricato ed eseguito l'app, verrà visualizzato il numero di versione e l'indirizzo IP a cui connettersi. È consigliabile usare la versione più recente del lettore disponibile.
Holographic Remoting richiede un PC veloce e una connessione Wi-Fi. Altre informazioni sono disponibili nell'articolo Player collegato in precedenza.
Per usare Holographic Remoting in entrambe le modalità specificate in precedenza, è necessario clonare il lettore di esempio Holographic Remoting e distribuirlo nel HoloLens 2 usando Visual Studio.
Creare un'app remota in esecuzione su PC per Holographic Remoting usando Unity
Nella barra dei menu selezionare Modifica > impostazioni progetto.
Nella colonna a sinistra selezionare Gestione plug-in XR.
Assicurarsi di essere nella scheda delle impostazioni piattaforma UWP (Universal Windows Platform).
Nella sezione Plug-in OpenXR selezionare Microsoft HoloLens gruppo di funzionalità e gruppo di funzionalità dell'app remota Holographic Remoting.
Deselezionare la casella di controllo Inizializza XR all'avvio .
Scrivere codice per impostare la configurazione remota e attivare l'inizializzazione XR. L'app può chiamare la funzione Connect per la modalità 1 o chiamare la funzione Listen per la modalità 2. Per un esempio, scaricare gli esempi di Open XR Unity Realtà mista e quindi, nel progetto RemotingSample, visualizzare lo script AppRemoting.cs.
Per la modalità 1, la modalità Connetti
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect
chiama con un oggettoRemotingConfiguration
compilato. L'app di esempio espone questo oggetto nel controllo e mostra come compilare l'indirizzo IP da un campo di testo. La chiamataConnect
imposta la configurazione e inizializza automaticamente XR, motivo per cui deve essere chiamata come coroutine:StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
Per la modalità 2, la modalità listen, chiamare
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen
con un oggetto compilato.RemotingListenConfiguration
L'app di esempio lo espone nel controllo. La chiamataListen
imposta la configurazione e attende una connessione dal lettore di esempio Holographic Remoting, motivo per cui deve essere chiamata come coroutine:StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
Durante l'esecuzione, è possibile ottenere lo stato di connessione corrente con l'API e, facoltativamente, disconnettere e annullare l'inizializzazione
AppRemoting.TryGetConnectionState
di XR usandoAppRemoting.Disconnect()
. Può essere usato per disconnettersi e riconnettersi a un dispositivo diverso all'interno della stessa sessione dell'app. L'app RemotingSample fornisce un cubo tappabile che disconnette la sessione remota se toccata.
Eseguire l'app remota Holographic Remoting e l'app Player nelle modalità descritte in precedenza
Modalità 1: eseguire l'app remota Holographic Remoting nel PC in modalità Connetti e il lettore in modalità ascolto:
Se il lettore è già installato dallo Store nel HoloLens 2, ignorare i numeri di passaggio 2 e 3 seguenti in cui si compila ed esegue l'app Sample Player. Eseguire invece Player installato e continuare con il passaggio 4.
Aprire l'app Holographic Remoting Sample Player usando VS 2019 e quindi eseguire una delle operazioni seguenti:
Per l'esecuzione su un HoloLens 2 utilizzando un cavo USB:
- Configurare le opzioni di compilazione come illustrato di seguito:
- Aprire la pagina Proprietà per il progetto e quindi passare a Proprietà> di configurazioneDebug.
- Fare clic sull'elenco a discesa Debugger per avviare e quindi selezionare Dispositivo.
- Nel campo Argomenti della riga di comando aggiungere "-listen".
Per l'esecuzione in un HoloLens 2 tramite Wifi:
- Configurare le opzioni di compilazione come illustrato di seguito:
- Aprire la pagina Proprietà per il progetto e quindi passare a Proprietà> di configurazioneDebug.
- Fare clic sull'elenco a discesa Debugger per avviare e quindi selezionare Computer remoto.
- Nel campo Argomenti della riga di comando aggiungere l'indirizzo IP Wifi di HoloLens.
Per distribuire la soluzione SamplePlayer nel HoloLens 2, premere il pulsante riproduci in Visual Studio. Sarà possibile visualizzare il lettore HAR Sample in esecuzione su HoloLens 2, visualizzando che è "In attesa di una connessione sull'indirizzo IP di HoloLens 2".
Nell'app remota in esecuzione nel PC host aggiungere l'indirizzo IP del HoloLens 2 visualizzato in precedenza e quindi selezionare Connetti.
Dopo aver stabilito la connessione, il lettore in esecuzione in HoloLens 2 avvierà "Ricezione".
Modalità 2: eseguire l'app remota nel PC in modalità ascolto e l'app lettore HAR in modalità Connetti:
Nella schermata dell'interfaccia utente 2D nell'app remota in esecuzione nel PC fare clic su Ascolta.
Aprire la pagina Proprietà per il progetto e quindi passare a Proprietà> di configurazioneDebug.
Fare clic sull'elenco a discesa Debugger per avviare e quindi selezionare Dispositivo.
Nel campo Argomenti della riga di comando aggiungere l'indirizzo IP del PC host.
Per distribuire la soluzione SamplePlayer nel HoloLens 2, nella soluzione Visual Studio fare clic sul pulsante Riproduci. Sarà possibile visualizzare il lettore HAR Sample in esecuzione nel HoloLens 2, visualizzando che si tratta di "Connessione all'indirizzo IP specificato negli argomenti della riga di comando".
Dopo aver stabilito la connessione, l'app Holographic Remoting Sample Player in esecuzione nel HoloLens 2 avvierà "Ricezione".
Suggerimento
Per ottenere risultati ottimali, assicurarsi che l'app imposti correttamente . . /focus point. Ciò consente a Holographic Remoting di adattare al meglio la scena alla latenza della connessione wireless.
Eseguire la migrazione dalle API Holographic Remoting precedenti
Per altre informazioni su Holographic Remoting, vedere Holographic Remoting Overview (Panoramica di Holographic Remoting)
UnityEngine.XR.WSA.HolographicRemoting
Dal codice di esempio nella documentazione di Unity:
XR. WSA. OlograficoRemoting | 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) e WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) |
AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason) |
WindowsMRRemoting.isAudioEnabled , WindowsMRRemoting.maxBitRateKbps , WindowsMRRemoting.remoteMachineName |
Passato a AppRemoting.Connect tramite lo RemotingConfiguration struct |
WindowsMRRemoting.isConnected |
AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected |