Partilhar via


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.

Captura de ecrã do Holographic Remoting Player em execução no HoloLens

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

  1. Na barra de menus, selecione Editar > Definições do Projeto.

  2. Na coluna do lado esquerdo, selecione Gestão do plug-in XR.

  3. Certifique-se de que está no separador definições Plataforma Universal do Windows.

    Captura de ecrã que mostra o XR-Plug na janela Gestão com o separador Plataforma Universal do Windows selecionado.

  4. Na secção plug-in OpenXR, selecione Microsoft HoloLens grupo de funcionalidades e grupo de funcionalidades da aplicação remota Holographic Remoting.

    Captura de ecrã a mostrar o plug-in OpenXr com

  5. Anule a seleção da caixa de verificação Inicializar XR no Arranque .

    Captura de ecrã a mostrar a janela gestão do Plug-in XR com

  6. 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.

  7. Para o Modo 1, o modo Ligar , chame Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect com um preenchido RemotingConfiguration. 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. A Connect 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));
    
  8. Para o Modo 2, o Modo de escuta , chame Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen com um preenchido RemotingListenConfiguration. A aplicação de exemplo expõe isto no Inspetor. A Listen 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));
    
  9. Durante a execução, pode obter o estado de ligação atual com a AppRemoting.TryGetConnectionState API e, opcionalmente, desligar e desativar o XR com AppRemoting.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:

  1. 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.

  2. 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:

    Captura de ecrã das definições de compilação do Visual Studio para se o utilizador estiver ligado através de um cabo USB.

    • 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".

    Captura de ecrã a mostrar os argumentos da linha de comandos para criar com um cabo USB.

    Para executar num HoloLens 2 com Wi-Fi:

    • Configure as opções de compilação conforme mostrado aqui:

    Captura de ecrã das definições de compilação do Visual Studio para se o utilizador criar para o HoloLens através de Wi-Fi.

    • 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.
  3. 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".

  4. 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.

  5. 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.

    Captura de ecrã das definições de compilação do Visual Studio para se o utilizador estiver ligado através de um cabo USB.

  • 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.

Captura de ecrã a mostrar os argumentos da linha de comandos para criar com um cabo USB.

  • 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

Consulte também