Uso de recursos de PC para alimentar la aplicación con la aplicación remota de Holographic Remoting

En este artículo se explica el siguiente caso de uso para holographic Remoting:

  • Quieres que los recursos de un equipo poweren la aplicación en lugar de depender de los recursos de la placa de HoloLens: puedes crear y crear una aplicación que tenga la funcionalidad de comunicación remota holográfica. El usuario experimenta la aplicación en HoloLens, pero la aplicación se ejecuta realmente en un equipo, lo que permite que la aplicación aproveche los recursos más eficaces del equipo. Esto puede ser especialmente útil si tu aplicación tiene activos o modelos de alta resolución y no quieres que la velocidad de fotogramas sufra. Llamamos a esta aplicación remota de holographic Remoting. Las entradas de HoloLens--gaze, gesto, voz y asignación espacial- se envían al equipo, donde el contenido se representa en una vista envolvente virtual. Los fotogramas representados se envían a HoloLens.

Este tipo de comunicación remota holográfica también está disponible para cascos envolventes de Windows Mixed Reality (WMR). Esto podría ser útil si, por ejemplo, el casco WMR está conectado a un PC de mochila y desea transmitir la aplicación desde un PC más potente al PC de mochila.

Para obtener más información sobre la comunicación remota holográfica, consulte Información general sobre la comunicación remota holográfica.

Ten en cuenta que también puedes usar la comunicación remota holográfica si quieres obtener una vista previa y depurar la aplicación durante el proceso de desarrollo.

Dos modos disponibles en la comunicación remota holográfica

Modo 1: Aplicación remota que se ejecuta en pc en modo conectar, reproductor que se ejecuta en el HoloLens 2 en modo de escucha.

El reproductor escucha las conexiones entrantes mientras la aplicación remota intenta conectarse.

Modo 2: Aplicación remota que se ejecuta en pc en modo de escucha, reproductor que se ejecuta en el HoloLens 2 en modo de conexión.

La aplicación remota escucha las conexiones entrantes mientras el Reproductor intenta conectarse.

Configuración de la aplicación Holographic Remoting Player

Para usar solo la comunicación remota holográfica en el modo 1, instale la aplicación Holographic Remoting Player desde Microsoft Store en su HoloLens 2 (en este artículo, nos referiremos a ella simplemente como "el reproductor"). Como se explica a continuación, después de descargar y ejecutar la aplicación, verá el número de versión y la dirección IP a las que conectarse. Se recomienda usar la versión más reciente del Reproductor disponible.

La comunicación remota holográfica requiere una conexión rápida de PC y Wi-Fi. Puede encontrar más detalles en el artículo Reproductor vinculado anteriormente.

Captura de pantalla del reproductor de comunicación remota holográfica que se ejecuta en HoloLens

Para usar la comunicación remota holográfica en ambos modos especificados anteriormente, debe clonar el reproductor de ejemplo de comunicación remota holográfica e implementarlo en el HoloLens 2 mediante Visual Studio.

Compilación de una aplicación remota que se ejecuta en pc para la comunicación remota holográfica mediante Unity

  1. En la barra de menús, seleccione Editar > configuración del proyecto.

  2. En la columna de la izquierda, seleccione Administración de complementos XR.

  3. Asegúrese de que está en la pestaña Plataforma universal de Windows configuración.

    Captura de pantalla que muestra el XR-Plug en la ventana Administración con la pestaña Plataforma universal de Windows seleccionada.

  4. En la sección complemento OpenXR, seleccione Microsoft HoloLens grupo de características y grupo de características de comunicación remota de Holographic Remoting.

    Captura de pantalla que muestra el complemento OpenXr con

  5. Anule la selección de la casilla Inicializar XR en inicio .

    Captura de pantalla de la ventana Administración de complementos XR con

  6. Escriba código para establecer la configuración de comunicación remota y desencadenar la inicialización XR. La aplicación puede llamar a la función Connect para el modo 1 o llamar a la función Listen para el modo 2. Para ver un ejemplo, descargue nuestros ejemplos de Open XR Unity Mixed Reality y, a continuación, en el proyecto RemotingSample, vea el script AppRemoting.cs.

  7. Para el modo 1, el modo Conectar , llame a Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Connect con un elemento rellenado RemotingConfiguration. La aplicación de ejemplo lo expone en el Inspector y muestra cómo rellenar la dirección IP desde un campo de texto. La llamada Connect establecerá la configuración e inicializará automáticamente XR, por lo que se debe llamar como corrutina:

    StartCoroutine(Remoting.AppRemoting.Connect(remotingConfiguration));
    
  8. Para el modo 2, el modo de escucha , llame a Microsoft.MixedReality.OpenXR.Remoting.AppRemoting.Listen con un elemento rellenado RemotingListenConfiguration. La aplicación de ejemplo lo expone en el Inspector. La llamada Listen establecerá la configuración y esperará una conexión desde el reproductor de ejemplo de comunicación remota holográfica, por lo que se debe llamar como corrutina:

    StartCoroutine(Remoting.AppRemoting.Listen(remotingListenConfiguration));
    
  9. Mientras se ejecuta, puede obtener el estado de conexión actual con la AppRemoting.TryGetConnectionState API y, opcionalmente, desconectar e inicializar XR mediante AppRemoting.Disconnect(). Esto se podría usar para desconectar y volver a conectarse a un dispositivo diferente dentro de la misma sesión de la aplicación. La aplicación RemotingSample proporciona un cubo pulsable que desconectará la sesión de comunicación remota si se pulsa.

Ejecute la aplicación remota de holographic Remoting y la aplicación Player en los modos descritos anteriormente.

Modo 1: ejecutar la aplicación remota de comunicación remota holográfica en pc en modo de conexión y el reproductor en modo de escucha:

  1. Si el reproductor ya está instalado desde la tienda en el HoloLens 2, omita los números de paso 2 y 3 debajo donde compila y ejecuta la aplicación Reproductor de ejemplo. En su lugar, ejecute el Reproductor instalado y continúe con el paso 4.

  2. Abra la aplicación Holographic Remoting Sample Player con VS 2019 y, a continuación, realice una de las siguientes acciones:

    Para ejecutarse en un HoloLens 2 mediante un cable USB:

    • Configure las opciones de compilación como se muestra aquí:

    Captura de pantalla de la configuración de compilación de Visual Studio para si el usuario está conectado a través del cable USB.

    • Abra la página Propiedades del proyecto y, a continuación, vaya aDepuración de propiedades> de configuración.
    • Haga clic en el depurador para iniciar la lista desplegable y, a continuación, seleccione Dispositivo.
    • En el campo Argumentos de la línea de comandos, agregue "-listen".

    Captura de pantalla de los argumentos de la línea de comandos para compilar mediante un cable USB.

    Para ejecutarse en un HoloLens 2 mediante Wifi:

    • Configure las opciones de compilación como se muestra aquí:

    Captura de pantalla de la configuración de compilación de Visual Studio para si el usuario compila en HoloLens mediante Wifi.

    • Abra la página Propiedades del proyecto y, a continuación, vaya aDepuración de propiedades> de configuración.
    • Haga clic en el depurador para iniciar la lista desplegable y, a continuación, seleccione Equipo remoto.
    • En el campo Argumentos de la línea de comandos, agregue la dirección IP Wifi de HoloLens.
  3. Para implementar la solución SamplePlayer en el HoloLens 2, presione el botón Reproducir en Visual Studio. Podrá ver el reproductor de ejemplo har que se ejecuta en HoloLens 2, mostrando que es "Esperando una conexión en la dirección IP de HoloLens 2".

  4. En la aplicación remota que se ejecuta en el equipo host, agregue la dirección IP del HoloLens 2 mostrado anteriormente y, a continuación, seleccione Conectar.

  5. Una vez establecida la conexión, el Reproductor que se ejecuta en HoloLens 2 iniciará "Recepción".

Modo 2: ejecutar la aplicación remota en el equipo en modo de escucha y la aplicación del reproductor HAR en modo de conexión:

  • En la pantalla de la interfaz de usuario 2D de la aplicación remota que se ejecuta en el equipo, haga clic en Escuchar.

    Captura de pantalla de la configuración de compilación de Visual Studio para si el usuario está conectado a través del cable USB.

  • Abra la página Propiedades del proyecto y, a continuación, vaya aDepuración de propiedades> de configuración.

  • Haga clic en el depurador para iniciar la lista desplegable y, a continuación, seleccione Dispositivo.

  • En el campo Argumentos de la línea de comandos , agregue la dirección IP del equipo host.

Captura de pantalla de los argumentos de la línea de comandos para compilar mediante un cable USB.

  • Para implementar la solución SamplePlayer en el HoloLens 2, en la solución de Visual Studio, haga clic en el botón Reproducir. Podrá ver el reproductor de ejemplo HAR que se ejecuta en el HoloLens 2, mostrando que es "Conexión a la dirección IP especificada en los argumentos de la línea de comandos".

  • Una vez establecida la conexión, la aplicación Holographic Remoting Sample Player que se ejecuta en el HoloLens 2 iniciará "Recepción".

Sugerencia

Para obtener los mejores resultados, asegúrese de que la aplicación establece correctamente . Punto /focus. Esto ayuda a la comunicación remota holográfica a adaptar mejor la escena a la latencia de la conexión inalámbrica.

Migración desde las API anteriores de holographic Remoting

Para obtener más información sobre la comunicación remota holográfica, consulte Información general sobre la comunicación remota holográfica.

UnityEngine.XR.WSA.HolographicRemoting

Desde el código de ejemplo en la documentación de 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) y WindowsMRRemoting.TryGetConnectionFailureReason(out ConnectionFailureReason) AppRemoting.TryGetConnectionState(out ConnectionState, out DisconnectReason)
WindowsMRRemoting.isAudioEnabled, WindowsMRRemoting.maxBitRateKbps, WindowsMRRemoting.remoteMachineName Pasado a AppRemoting.Connect través de la RemotingConfiguration estructura
WindowsMRRemoting.isConnected AppRemoting.TryGetConnectionState(out ConnectionState state, out _) && state == ConnectionState.Connected

Consulte también