Utilizar recursos de PC para alimentar a sua aplicação com a aplicação remota Holographic Remoting
Este artigo explica o seguinte caso de utilização da Comunicação Remota Holográfica:
- Quer que os recursos de um PC aprovisionem a sua aplicação em vez de dependerem dos recursos a bordo do HoloLens: pode criar e criar uma aplicação que tenha capacidade de Comunicação Remota Holográfica. O utilizador experimenta a aplicação no HoloLens, mas a aplicação é executada num PC, o que permite que a aplicação tire partido dos recursos mais poderosos do PC. Isto pode ser especialmente útil se a sua aplicação tiver recursos ou modelos de alta resolução e não quiser que a taxa de fotogramas sofra. Chamamos a isto uma aplicação remota Holográfica Remota. As entradas do HoloLens – olhar, gesto, voz e mapeamento espacial – são enviadas para o PC, onde o conteúdo é composto numa vista envolvente virtual. Em seguida, os frames compostos são enviados para o HoloLens.
Este tipo de Comunicação Remota Holográfica também está disponível para headsets envolventes Windows Mixed Reality (WMR). Isto pode ser útil se, por exemplo, o headset WMR estiver ligado a um PC de mochila e quiser transmitir a sua aplicação em fluxo a partir de um PC mais potente para o PC de mochila.
Para saber mais sobre a Comunicação Remota Holográfica, veja Holographic Remoting Overview (Descrição Geral da Comunicação Remota Holográfica)
Tenha em atenção que também pode utilizar a Comunicação Remota Holográfica se quiser pré-visualizar e depurar a sua aplicação durante o processo de desenvolvimento.
Dois modos disponíveis na Comunicação Remota Holográfica
Modo 1: aplicação remota em execução no PC no modo Ligar, Leitor em execução no HoloLens 2 no modo de Escuta.
O Leitor ouve as ligações recebidas enquanto a aplicação remota tenta ligar.
Modo 2: aplicação remota em execução no PC no modo de Escuta, Leitor em execução no HoloLens 2 no modo de ligação.
A aplicação remota escuta as ligações recebidas enquanto o Leitor tenta estabelecer ligação.
Configurar a aplicação Holographic Remoting Player
Para utilizar a Comunicação Remota Holográfica apenas no Modo 1, instale a aplicação Holographic Remoting Player a partir da Microsoft Store no seu HoloLens 2 (neste artigo, vamos referir-nos à mesma simplesmente como "o Leitor"). Conforme explicado abaixo, depois de transferir e executar a aplicação, verá o número da versão e o endereço IP a que se ligar. Recomendamos que utilize a versão mais recente do Player disponível.
A Comunicação Remota Holográfica requer uma ligação rápida do PC e Wi-Fi. Pode encontrar mais detalhes no artigo do Player associado acima.
Para utilizar a Comunicação Remota Holográfica em ambos os modos especificados acima, tem de clonar o Leitor de Exemplo De Comunicação Remota Holográfica e implementá-lo no HoloLens 2 com o Visual Studio.
Criar uma aplicação remota em execução no PC para Comunicação Remota Holográfica com o Unity
Na barra de menus, selecione Editar > Definições do Projeto.
Na coluna do lado esquerdo, selecione Gestão do plug-in XR.
Certifique-se de que está no separador definições Plataforma Universal do Windows.
Na secção plug-in OpenXR, selecione Microsoft HoloLens grupo de funcionalidades e grupo de funcionalidades da aplicação remota Holographic Remoting.
Anule a seleção da caixa de verificação Inicializar XR no Arranque .
Escreva algum código para definir a configuração remota e acionar a inicialização XR. A aplicação pode chamar a função Ligar para o Modo 1 ou chamar a função Escuta para o Modo 2. Para ver um exemplo, transfira os nossos exemplos open XR Unity Mixed Reality e, em seguida, no projeto RemotingSample, veja o script AppRemoting.cs.
Para o Modo 1, o modo Ligar , chame
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect
com um preenchidoRemotingConfiguration
. A aplicação de exemplo expõe-no no Inspetor e mostra como preencher o endereço IP a partir de um campo de texto. AConnect
chamada definirá a configuração e inicializará automaticamente o XR, razão pela qual tem de ser chamado como coroutine:StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
Para o Modo 2, o Modo de escuta , chame
Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen
com um preenchidoRemotingListenConfiguration
. A aplicação de exemplo expõe isto no Inspetor. AListen
chamada definirá a configuração e aguardará uma ligação do leitor de exemplo Holographic Remoting, razão pela qual tem de ser chamada como coroutine:StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
Durante a execução, pode obter o estado de ligação atual com a
AppRemoting.TryGetConnectionState
API e, opcionalmente, desligar e desativar o XR comAppRemoting.Disconnect()
. Isto pode ser utilizado para desligar e voltar a ligar a um dispositivo diferente na mesma sessão de aplicação. A aplicação RemotingSample fornece um cubo gravável que desligará a sessão remota se for tocada.
Execute a aplicação remota Holographic Remoting e a aplicação Player nos modos descritos acima
Modo 1: execute a aplicação remota Holographic Remoting no PC no Modo de Ligação e o Leitor no Modo de Escuta:
Se o Player já estiver instalado a partir da loja no HoloLens 2, ignore os números dos passos 2 e 3 abaixo do local onde compila e executa a aplicação Sample Player. Em vez disso, execute o Player instalado e continue com o passo 4.
Abra a aplicação Holographic Remoting Sample Player com o VS 2019 e, em seguida, efetue um dos seguintes procedimentos:
Para executar num HoloLens 2 utilizando um cabo USB:
- Configure as opções de compilação conforme mostrado aqui:
- Abra a página Propriedades do projeto e, em seguida, navegue paraDepuração de Propriedades> de Configuração.
- Clique no Depurador para iniciar o menu pendente e, em seguida, selecione Dispositivo.
- No campo Argumentos da Linha de Comandos , adicione "-listen".
Para executar num HoloLens 2 com Wi-Fi:
- Configure as opções de compilação conforme mostrado aqui:
- Abra a página Propriedades do projeto e, em seguida, navegue paraDepuração de Propriedades> de Configuração.
- Clique no Depurador para iniciar o menu pendente e, em seguida, selecione Máquina Remota.
- No campo Argumentos da Linha de Comandos , adicione o endereço IP Wi-Fi do HoloLens.
Para implementar a solução SamplePlayer no HoloLens 2, prima o botão reproduzir no Visual Studio. Poderá ver o leitor de exemplo HAR em execução no HoloLens 2, apresentando que é "A aguardar uma ligação no endereço IP do HoloLens 2".
Na aplicação remota em execução no PC anfitrião, adicione o endereço IP do HoloLens 2 apresentado acima e, em seguida, selecione Ligar.
Após a ligação ser estabelecida, o Leitor em execução no HoloLens 2 iniciará a "Receção".
Modo 2: execute a aplicação remota no PC no Modo de Escuta e a aplicação har player no Modo de Ligação:
No ecrã IU 2D na aplicação remota em execução no PC, clique em Ouvir.
Abra a página Propriedades do projeto e, em seguida, navegue paraDepuração de Propriedades> de Configuração.
Clique no Depurador para iniciar o menu pendente e, em seguida, selecione Dispositivo.
No campo Argumentos da Linha de Comandos , adicione o endereço IP do PC anfitrião.
Para implementar a solução SamplePlayer no HoloLens 2, na solução visual Studio, clique no botão reproduzir. Poderá ver o leitor de exemplo HAR em execução no HoloLens 2, apresentando que é "Ligar ao endereço IP fornecido nos argumentos da linha de comandos".
Após a ligação ser estabelecida, a aplicação Holographic Remoting Sample Player em execução no HoloLens 2 iniciará a "Receção".
Dica
Para obter os melhores resultados, certifique-se de que a sua aplicação define corretamente o .. /focus point. Isto ajuda o Holographic Remoting a adaptar melhor a sua cena à latência da sua ligação sem fios.
Migrar de APIs De Comunicação Remota Holográfica anteriores
Para saber mais sobre a Comunicação Remota Holográfica, veja Holographic Remoting Overview (Descrição Geral da Comunicação Remota Holográfica)
UnityEngine.XR.WSA.HolographicRemoting
No código de exemplo nos documentos do 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) e WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) |
AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason) |
WindowsMRRemoting.isAudioEnabled , WindowsMRRemoting.maxBitRateKbps , WindowsMRRemoting.remoteMachineName |
AppRemoting.Connect Transmitido através da RemotingConfiguration estrutura |
WindowsMRRemoting.isConnected |
AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected |