Usar recursos do computador para habilitar seu aplicativo com o aplicativo remoto De Comunicação Remota Holográfica

Este artigo explica o seguinte caso de uso para Comunicação Remota Holográfica:

  • Você deseja que os recursos de um computador liguem seu aplicativo em vez de depender dos recursos a bordo do HoloLens: você pode criar e criar um aplicativo que tenha funcionalidade de Comunicação Remota Holográfica. O usuário experimenta o aplicativo no HoloLens, mas o aplicativo realmente é executado em um computador, o que permite que o aplicativo aproveite os recursos mais poderosos do computador. Isso pode ser especialmente útil se seu aplicativo tiver ativos ou modelos de alta resolução e você não quiser que a taxa de quadros sofra. Chamamos isso de aplicativo remoto de Comunicação Remota Holográfica. As entradas do HoloLens – foco, gesto, voz e mapeamento espacial – são enviadas para o computador, onde o conteúdo é renderizado em uma exibição imersiva virtual. Os quadros renderizados são enviados para o HoloLens.

Esse tipo de Comunicação Remota Holográfica também está disponível para headsets imersivos de Windows Mixed Reality (WMR). Isso pode ser útil se, por exemplo, seu fone de ouvido WMR estiver conectado a um computador de mochila e você quiser transmitir seu aplicativo de um computador mais poderoso para o computador de mochila.

Para saber mais sobre a Comunicação Remota Holográfica, confira Visão geral da comunicação remota holográfica

Observe que você também pode usar a Comunicação Remota Holográfica se quiser visualizar e depurar seu aplicativo durante o processo de desenvolvimento.

Dois modos disponíveis na Comunicação Remota Holográfica

Modo 1: aplicativo remoto em execução no computador no modo Conectar, Player em execução no HoloLens 2 no modo Escutar.

O Player escuta as conexões de entrada enquanto o aplicativo remoto tenta se conectar.

Modo 2: aplicativo remoto em execução no computador no modo Escuta, Player em execução no HoloLens 2 no modo de conexão.

O aplicativo remoto escuta conexões de entrada enquanto o Player tenta se conectar.

Configurar o aplicativo Holographic Remoting Player

Para usar a Comunicação Remota Holográfica apenas no Modo 1, instale o aplicativo Holographic Remoting Player da Microsoft Store em seu HoloLens 2 (neste artigo, vamos nos referir a ele simplesmente como "o Player"). Conforme explicado abaixo, depois de baixar e executar o aplicativo, você verá o número de versão e o endereço IP ao qual se conectar. É recomendável usar a versão mais recente do Player disponível.

A Comunicação Remota Holográfica requer uma conexão rápida de computador e Wi-Fi. Você pode encontrar mais detalhes no artigo Player vinculado acima.

Captura de tela do Player de Comunicação Remota Holográfica em execução no HoloLens

Para usar a Comunicação Remota Holográfica em ambos os modos especificados acima, você precisa clonar o player de Exemplo de Comunicação Remota Holográfica e implantá-lo no HoloLens 2 usando o Visual Studio.

Criar um aplicativo remoto em execução no PC para Comunicação Remota Holográfica usando o Unity

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

  2. Na coluna do lado esquerdo, selecione Gerenciamento de plug-in XR.

  3. Verifique se você está na guia Plataforma Universal do Windows configurações.

    Captura de tela que mostra o XR-Plug na janela Gerenciamento com a guia Plataforma Universal do Windows selecionada.

  4. Na seção plug-in do OpenXR, selecione Microsoft HoloLens grupo de recursos e grupo de recursos de aplicativos remotos de Comunicação Remota Holográfica.

    Captura de tela que mostra o plug-in do OpenXr com

  5. Desmarque a caixa Inicializar XR no marcar de Inicialização.

    Captura de tela da janela Gerenciamento de Plug-in XR com

  6. Escreva algum código para definir a configuração de comunicação remota e disparar a inicialização XR. O aplicativo pode chamar a função Connect para o Modo 1 ou chamar a função Listen para o Modo 2. Para ver um exemplo, baixe nossos exemplos de Realidade Misturada do Open XR Unity e, em seguida, no projeto RemotingSample, exiba o script AppRemoting.cs.

  7. Para o Modo 1, o modo Conectar , chame Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect com um preenchido RemotingConfiguration. O aplicativo de exemplo expõe isso no Inspetor e mostra como preencher o endereço IP de um campo de texto. Chamar Connect definirá a configuração e inicializará automaticamente o XR, razão pela qual ele deve ser chamado como uma corrotina:

    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. O aplicativo de exemplo expõe isso no Inspetor. Chamar Listen definirá a configuração e aguardará uma conexão do player de exemplo de Comunicação Remota Holográfica, razão pela qual ela deve ser chamada como uma corrotina:

    StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
    
  9. Durante a execução, você pode obter o estado de conexão atual com a AppRemoting.TryGetConnectionState API e, opcionalmente, desconectar e desinicializar o XR usando AppRemoting.Disconnect(). Isso pode ser usado para desconectar e reconectar-se a um dispositivo diferente dentro da mesma sessão de aplicativo. O aplicativo RemotingSample fornece um cubo com toque que desconectará a sessão de comunicação remota se for tocado.

Executar o aplicativo remoto De Comunicação Remota Holográfica e o aplicativo Player nos modos descritos acima

Modo 1: execute o aplicativo remoto De Comunicação Remota Holográfica no COMPUTADOR no Modo de Conexão e o Player no Modo de Escuta:

  1. Se o Player já estiver instalado na loja no HoloLens 2, pule os números da etapa 2 e 3 abaixo de onde você compila e executa o aplicativo Player de Exemplo. Em vez disso, execute o Player instalado e continue com a etapa nº 4.

  2. Abra o aplicativo Player de Exemplo de Comunicação Remota Holográfica usando o VS 2019 e siga um destes procedimentos:

    Para executar em um HoloLens 2 usando um cabo USB:

    • Configure as opções de build, conforme mostrado aqui:

    Captura de tela das configurações de build do Visual Studio para se o usuário estiver conectado por meio de cabo USB.

    • Abra a página Propriedades do projeto e navegue até Propriedades de Configuração>Depuração.
    • Clique no Depurador para iniciar a lista suspensa e selecione Dispositivo.
    • No campo Argumentos de Linha de Comando , adicione "-listen".

    Captura de tela dos argumentos de linha de comando para criação usando um cabo USB.

    Para executar em um HoloLens 2 usando Wifi:

    • Configure as opções de build, conforme mostrado aqui:

    Captura de tela das configurações de build do Visual Studio para se o usuário estiver criando para o HoloLens usando Wifi.

    • Abra a página Propriedades do projeto e navegue até Propriedades de Configuração>Depuração.
    • Clique no Depurador para iniciar a lista suspensa e selecione Computador Remoto.
    • No campo Argumentos de Linha de Comando , adicione o endereço IP wi-fi do HoloLens.
  3. Para implantar a solução SamplePlayer no HoloLens 2, pressione o botão Reproduzir no Visual Studio. Você poderá ver o player de Exemplo de HAR em execução no HoloLens 2, exibindo que ele é "Aguardando uma conexão no endereço IP de HoloLens 2".

  4. No aplicativo remoto em execução no computador host, adicione o endereço IP do HoloLens 2 exibido acima e selecione Conectar.

  5. Depois que a conexão for estabelecida, o Player em execução no HoloLens 2 iniciará "Recebimento".

Modo 2: execute o aplicativo remoto no computador no Modo de Escuta e o aplicativo player HAR no Modo de Conexão:

  • Na tela da interface do usuário 2D no aplicativo remoto em execução no computador, clique em Escutar.

    Captura de tela das configurações de build do Visual Studio para se o usuário estiver conectado por meio de cabo USB.

  • Abra a página Propriedades do projeto e navegue até Propriedades de Configuração>Depuração.

  • Clique no Depurador para iniciar a lista suspensa e selecione Dispositivo.

  • No campo Argumentos de Linha de Comando , adicione o endereço IP do computador host.

Captura de tela dos argumentos de linha de comando para criação usando um cabo USB.

  • Para implantar a solução SamplePlayer no HoloLens 2, na solução do Visual Studio, clique no botão Reproduzir. Você poderá ver o player de Exemplo de HAR em execução no HoloLens 2, exibindo que ele é "Conectando-se ao endereço IP fornecido em argumentos de linha de comando".

  • Depois que a conexão for estabelecida, o aplicativo Player de Exemplo de Comunicação Remota Holográfica em execução no HoloLens 2 iniciará "Recebimento".

Dica

Para obter melhores resultados, verifique se seu aplicativo define corretamente o .. /focus point. Isso ajuda a Comunicação Remota Holográfica a adaptar melhor sua cena à latência da conexão sem fio.

Migrar de APIs de Comunicação Remota Holográfica anteriores

Para saber mais sobre a Comunicação Remota Holográfica, confira Visã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 Passado por AppRemoting.Connect meio do RemotingConfiguration struct
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected

Consulte Também