Portabilidad de aplicaciones de VR a Windows Mixed Reality

Windows 10 admite cascos envolventes y holográficos. Si ha creado contenido para otros dispositivos, como OculusPlataforma o NFC Vive, tienen dependencias en las bibliotecas que existen por encima de la API de plataforma del sistema operativo. Llevar las aplicaciones existentes de Unity VR de Win32 a Windows Mixed Reality implica redestinar el uso de SDK de REALIDAD virtual específicos del proveedor a las API de REALIDAD virtual entre proveedores de Unity.

Requisitos de porte

En un nivel alto, los pasos siguientes intervienen en la porción de contenido existente:

  1. Asegúrese de que el equipo ejecuta el Windows 10 Fall Creators Update (16299). Ya no se recomienda recibir compilaciones en versión preliminar desde el anillo Insider Skip Ahead, ya que esas compilaciones no serán las más estables para el desarrollo de realidad mixta.
  2. Actualice a la versión más reciente del motor de gráficos o juegos. Los motores de juegos tendrán que admitir la versión 10.0.15063.0 del SDK de Windows 10 (publicada en abril de 2017) o superior.
  3. Actualice cualquier middleware, complementos o componentes. Si la aplicación contiene algún componente, es una buena idea actualizar a la versión más reciente.
  4. Quite las dependencias de los SDK duplicados. En función del dispositivo de destino del contenido, deberá quitar o compilar condicionalmente ese SDK para que pueda dirigirse a las API de Windows en su lugar. Un ejemplo de este escenario sería SteamVR.
  5. Trabajar a través de problemas de compilación. En este punto, el ejercicio de porte es específico de la aplicación, el motor y las dependencias de componentes que tiene.

Pasos comunes de porte

1. Asegúrese de que tiene el hardware de desarrollo adecuado

En la página de la guía para los usuarios de realidad virtual se muestra el hardware de desarrollo recomendado.

2. Actualización al último vuelo de Windows 10

La Windows Mixed Reality está aún en desarrollo activo. Se recomienda unirse al Windows Programa Insider para acceder al vuelo "Windows Modo anticipado de Insider".

  1. Instale el Windows 10 Creators Update
  2. Una el Windows Programa Insider.
  3. Habilitación del modo de desarrollador
  4. Cambie a los vuelos Windows Modo anticipado de Insider a travésConfiguración Actualizar seguridad

3. Actualización a la compilación más reciente de Visual Studio

  • Si usa Visual Studio, actualice a la compilación más reciente.
  • Consulte la página Instalación de las herramientas en Visual Studio 2019

4. Elegir el adaptador correcto

  • En sistemas como cuadernos con dos GPU, el destino es el adaptador correcto. Esto se aplica a las aplicaciones nativas de Unity y DirectX en las que se crea un dispositivo ID3D11, ya sea explícita o implícitamente (Media Foundation), para su funcionalidad.

Guía de porte de Unity

1. Revise los pasos comunes de porte mencionados anteriormente.

Revise los pasos comunes enumerados anteriormente para asegurarse de que el entorno de desarrollo está configurado correctamente. En el paso 3, si usa Visual Studio la carga de trabajo Desarrollo de juegos con Unity. Puede anular la selección del componente "Editor de Unity opcional", ya que instalará una versión más reciente de Unity en el paso siguiente.

2. Actualización a la compilación pública más reciente de Unity con Windows mr.

  1. Descargue la compilación pública recomendada más reciente de Unity con compatibilidad con realidad mixta.
  2. Guardar una copia del proyecto antes de empezar
  3. Revise la documentación disponible en Unity sobre la actualización si el proyecto se creó en una versión anterior de Unity.
  4. Siga las instrucciones del sitio de Unity para usar su actualizador de API automático.
  5. Compruebe y compruebe si hay cambios adicionales que debe realizar para que el proyecto se ejecute y revise los errores y advertencias restantes.

Nota

Si tiene middleware del que depende, compruebe que usa la versión más reciente (más detalles en el paso 3 a continuación).

3. Actualización del middleware a las versiones más recientes

Con cualquier actualización de Unity, existe la posibilidad de que necesite actualizar uno o varios paquetes de middleware de los que depende el juego o la aplicación. Además, estar al día con el middleware más reciente aumenta la probabilidad de éxito durante el resto del proceso de porte.

4. Destino de la aplicación para que se ejecute en Win32

Desde dentro de la aplicación de Unity:

  • Vaya a Archivo : > compilación Configuración
  • Seleccione "PC, Mac, Linux independiente"
  • Establezca la plataforma de destino en "Windows"
  • Establezca arquitectura en "x86" Seleccione "Cambiar plataforma"

Nota

Si la aplicación tiene dependencias en servicios específicos del dispositivo, como la realización de coincidencias desde Steam, deberá deshabilitarlas en este paso. Puede enlazar a los servicios equivalentes que Windows proporciona más adelante.

5. Configuración del hardware de Windows Mixed Reality hardware

  1. Revisión de los pasos de la configuración del casco envolvente
  2. Más información sobre el uso del simulador Windows Mixed Reality y navegación por el Windows Mixed Reality inicio

6. Destino de la aplicación para que se ejecute en Windows Mixed Reality

  1. En primer lugar, debe quitar o compilar condicionalmente cualquier otra compatibilidad de biblioteca específica de un SDK de VR determinado. Estos recursos cambian con frecuencia la configuración y las propiedades del proyecto de maneras incompatibles con otros SDK de VR, como Windows Mixed Reality.
    • Por ejemplo, si el proyecto hace referencia al SDK de SteamVR, deberá actualizar el proyecto para usar en su lugar las API comunes de REALIDAD virtual de Unity que admiten tanto Windows Mixed Reality como SteamVR.
    • Próximamente se van a seguir pasos específicos para excluir condicionalmente otros SDK de VR.
  2. En el proyecto de Unity, el destino es Windows 10 SDK.
  3. Para cada escena, configure la cámara.

7. Use la fase para colocar contenido en el suelo

Puede crear experiencias Mixed Reality en una amplia gama de escalas de experiencia.

Si va a portar una experiencia deescalado asentado, debe asegurarse de que Unity está establecido en el tipo de espacio de seguimiento stationary:

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Este código anterior establece el sistema de coordenadas universales de Unity para realizar un seguimiento del marco de referencia estacionada. En el modo de seguimiento estacionado, el contenido colocado en el editor justo delante de la ubicación predeterminada de la cámara (hacia delante es -Z) aparece delante del usuario cuando se inicia la aplicación. Para hacer más reciente el origen de la sesión del usuario, puede llamar a XR de Unity. Método InputTracking.Recenter.

Si va a porte una experiencia de escalado permanente o de escala de habitación,colocará contenido relativo a la planta. Para razonar sobre la planta del usuario, se usa la fase espacial ,que representa el origen de nivel de planta definido del usuario y el límite opcional de la sala, configurados durante la primera ejecución. Para estas experiencias, debe asegurarse de que Unity está establecido en el tipo de espacio de seguimiento RoomScale. Aunque RoomScale es el valor predeterminado, querrá establecerlo explícitamente y asegurarse de que vuelve a ser true, para detectar situaciones en las que el usuario ha alejado el equipo de la sala calibrada:

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App cannot make assumptions about where the floor plane is.
}

Una vez que la aplicación establece correctamente el tipo de espacio de seguimiento RoomScale, el contenido situado en el plano y=0 aparecerá en el suelo. El origen en (0, 0, 0) será el lugar específico en la planta donde el usuario se encuentra durante la instalación de la sala, con -Z que representa la dirección hacia delante a la que se encontraban durante la instalación.

En el código de script, puede llamar al método TryGetGeometry en el tipo UnityEngine.Experimental.XR.Boundary para obtener un polígono de límite, especificando un tipo de límite TrackedArea. Si el usuario definió un límite (se obtiene una lista de vértices), es seguro ofrecer una experiencia de escala de habitación al usuario, donde puede recorrer la escena que cree.

El sistema representará automáticamente el límite cuando el usuario se acerque a él. La aplicación no necesita usar este polígono para representar el propio límite.

Para más información, consulte la página Sistemas de coordenadas en Unity.

Ejemplo de resultados:

Ejemplo de resultados

El algoritmo se basa en un blog de Daniel Smilkov: El rectángulo más grande de un polígono

8. Trabajar a través del modelo de entrada

Cada juego o aplicación destinado a un HMD existente tendrá un conjunto de entradas que controla, los tipos de entradas que necesita para la experiencia y las API específicas a las que llama para obtener esas entradas. Hemos invertido en intentar que sea lo más sencillo y sencillo posible aprovechar las ventajas de las entradas disponibles en Windows Mixed Reality.

Lea la guía de porte de entrada de Unity en la pestaña adyacente para obtener más información sobre cómo Windows Mixed Reality expone la entrada y cómo se asigna a lo que la aplicación puede hacer hoy en día.

9. Pruebas y optimización del rendimiento

Windows Mixed Reality estará disponible en una amplia clase de dispositivos, desde equipos de juegos de gama alta hasta equipos estándar del mercado. En función del mercado al que se esté dirigir, hay una diferencia significativa en los presupuestos de gráficos y proceso disponibles para la aplicación. Durante este ejercicio de porte, probablemente esté aprovechando un equipo Premium y haya tenido presupuestos de gráficos y proceso significativos disponibles para la aplicación. Si desea que la aplicación esté disponible para un público más amplio, debe probar y crear perfiles de la aplicación en el hardware representativo al que desea dirigirse.

Tanto Unity como Visual Studio los perfiles de rendimiento, así como directrices de publicación de Microsoft e Intel sobre la generación de perfiles y la optimización del rendimiento. Hay una amplia explicación del rendimiento disponible en Descripción del rendimiento para Mixed Reality. Además, hay detalles específicos de Unity en Rendimiento Recomendaciones para Unity.

Guía de porte de Unreal

Importante

Si usa controladores HP Reverb G2, consulte este artículo para obtener instrucciones de asignación de entrada adicionales.

Vea también