Configuración recomendada para Unity

Unity proporciona un conjunto de opciones predeterminadas que suelen ser el caso medio de todas las plataformas. Sin embargo, Unity ofrece algunos comportamientos específicos de la realidad mixta que se pueden alternar a través de la configuración del proyecto.

Configuración del entorno de rendimiento

Configuración de baja calidad

Es importante modificar la configuración de calidad de Unity a Muy baja para que la aplicación se ejecute y funcione correctamente con la velocidad de fotogramas adecuada, especialmente para el HoloLens desarrollo. Para el desarrollo en cascos envolventes, en función de las especificaciones del escritorio que encienda la experiencia de realidad virtual, todavía se puede lograr la velocidad de fotogramas sin los parámetros de calidad más baja.

En Unity 2019 LTS+, puede establecer el nivel de calidad del proyecto si va a > Editar> Project Configuración Quality y establece el valor predeterminado haciendo clic en la flecha hacia abajo en **Nivel de calidad muy bajo.

Configuración de iluminación

De forma similar a la configuración de la escena de calidad, es importante establecer la configuración de iluminación óptima para la Mixed Reality aplicación. En Unity, la configuración de iluminación que normalmente tendrá el mayor impacto en el rendimiento en la escena es iluminación global en tiempo real. Para desactivar la iluminación global, vaya a VentanaRenderaciónIluminación>>Configuración>Iluminación global deRealtime.

Hay otra configuración de iluminación, La iluminación global al aire. Esta configuración puede proporcionar resultados atractivos visuales y de gran rendimiento en los cascos envolventes, pero no es aplicable para HoloLens desarrollo. La iluminación global recién hecha solo se calcula para objetos GameObject estáticos, que no se encuentran en HoloLens escenas debido a la naturaleza de un entorno desconocido y cambiante.

Lea Iluminación global de Unity para obtener más información.

Nota

La iluminación global en tiempo real se establece por escena y, por tanto, los desarrolladores deben guardar esta propiedad para cada escena de Unity en su proyecto.

Ruta de acceso de representación de creación de instancias de paso único

En Mixed Reality aplicaciones, la escena se representa dos veces, una vez para cada ojo para el usuario. En comparación con el desarrollo 3D tradicional, esto duplica eficazmente la cantidad de trabajo que se debe calcular. Es importante seleccionar la ruta de representación más eficaz en Unity para ahorrar tiempo en CPU y GPU. La representación con instancia de paso único optimiza la canalización de representación de Unity para Mixed Reality aplicaciones y se recomienda habilitar esta configuración de forma predeterminada para cada proyecto.

Para habilitar esta característica en el proyecto de Unity

  1. Abre Player XR Settings (Configuración del reproductor XR) (ve a Editar>Configuración del proyecto>Reproductor>XR Settings [Configuración de XR]).
  2. Selecciona Single Pass Instanced (Con instancia de un solo paso) en el menú desplegable Stereo Rendering Method (Método de representación en estéreo) (la casilla Virtual Reality Supported [Compatibilidad con realidad virtual] debe estar marcada)

Lea los siguientes artículos de Unity para obtener más detalles con este enfoque de representación.

Nota

Un problema común con la representación con instancia de un solo paso se produce si los desarrolladores ya tienen sombreadores personalizados no escritos para la creación de instancias. Después de habilitar esta característica, los desarrolladores pueden observar que algunos objetos GameObjects solo se representan en un ojo. Esto se debe a que los sombreadores personalizados asociados no tienen las propiedades adecuadas para la creación de instancias.

Consulta Representación en estéreo de un solo paso para HoloLens de Unity para solucionar este problema.

Habilitación del uso compartido del búfer de profundidad

Para lograr una mejor estabilidad del holograma desde la percepción del usuario, se recomienda habilitar la propiedad Uso compartido del búfer de profundidad en Unity. Al activarlo, Unity compartirá el mapa de profundidad generado por la aplicación con la plataforma Windows Mixed Reality datos. A continuación, la plataforma puede optimizar mejor la estabilidad del holograma específicamente para la escena para cualquier fotograma determinado que represente la aplicación.

Para habilitar esta característica en el proyecto de Unity

  1. Abre Player XR Settings (Configuración del reproductor XR) (ve a Editar>Configuración del proyecto>Reproductor>XR Settings [Configuración de XR]).
  2. Active la casilla Enable Depth Buffer Sharing (Habilitar uso compartido de búfer de profundidad) en Virtual Reality SDKs>Windows Mixed Reality expansion (Virtual Reality Supported checkbox must be checked) (Se debe activar la casilla Virtual Reality Supported [Compatible con Virtual Reality])

Además, se recomienda seleccionar una profundidad de 16 bits en la opción Formato de profundidad de este panel, especialmente para HoloLens Desarrollo. La selección de 16 bits en comparación con 24 bits reducirá significativamente los requisitos de ancho de banda, ya que será necesario mover o procesar menos datos.

Para que la plataforma Windows Mixed Reality optimizar la estabilidad del holograma, se basa en que el búfer de profundidad sea preciso y coincida con los hologramas representados en pantalla. Por lo tanto, con el uso compartido del búfer de profundidad en , es importante al representar el color, para representar también la profundidad. En Unity, la mayoría de los materiales Opaque o TransparentCutout representarán la profundidad de forma predeterminada, pero los objetos de texto y transparentes no representarán la profundidad, aunque esto depende del sombreador, etc.

Si usa el sombreador Mixed Reality Toolkit estándar, para representar la profundidad de los objetos transparentes:

  1. Seleccione el material transparente que usa el sombreador ESTÁNDAR DE MRTK y abra la ventana del editor inspector.
  2. Seleccione el botón Corregir ahora dentro de la advertencia de uso compartido del búfer de profundidad. Esto también se puede realizar manualmente estableciendo el modo de representación en Personalizado; a continuación, establezca Modoen Transparente y, por último , establezca Escritura en profundidad en On

Importante

Los desarrolladores deben tener cuidado con Z-fighting al cambiar estos valores junto con la configuración del plano cercano o lejano de la cámara. Z-Fighting se produce cuando dos objetos gameobject intentan representarse en el mismo píxel y debido a limitaciones de fidelidad del búfer de profundidad (es decir, profundidad z), Unity no puede distinguir qué objeto está delante del otro. Los desarrolladores tendrán en cuenta un parpadeo entre dos objetos de juego a medida que se afianzen por el mismo valor de profundidad z. Esto se puede resolver cambiando al formato de profundidad de 24 bits, ya que habrá un intervalo mayor de valores para cada objeto con el que calcular su profundidad z desde la cámara.

Sin embargo, se recomienda, especialmente para el desarrollo de HoloLens, modificar los planos cercanos y lejanos de la cámara a un intervalo más pequeño en su lugar y conservar el formato de profundidad de 16 bits. La profundidad z no se asigna linealmente al intervalo de valores a lo largo de los planos de cámara cercanos y lejanos. Para modificarlo, seleccione la cámara principal de la escena y, en Inspector, & cambie los valores del plano de recorte cercano para reducir su intervalo (es decir, de 1000 m a 100 m u otro valor x, etc.).

Importante

Unity no crea un búfer de galería de símbolos cuando se usa el formato de profundidad de 16 bits. Por lo tanto, algunos efectos de interfaz de usuario de Unity y otros efectos necesarios para la galería de símbolos no funcionarán a menos que se seleccione el formato de profundidad de 24 bits que creará un búfer de galería de símbolos de 8 bits.

Creación para IL2CPP

Unity ha dejado de ser compatible con el back-end de scripting de .NET y, por tanto, recomienda que los desarrolladores usen IL2CPP para sus compilaciones de Visual Studio para UWP. Aunque esto aporta varias ventajas, la creación de la solución de Visual Studio desde Unity para IL2CPP puede ser más lenta que el antiguo método .NET. Por lo tanto, se recomienda encarecidamente seguir los procedimientos recomendados para compilar IL2CPP para ahorrar tiempo de iteración de desarrollo.

  1. Aproveche la compilación incremental mediante la compilación del proyecto en el mismo directorio cada vez, y vuelva a usar allí los archivos pre-creados.
  2. Deshabilitación de exámenes de software antimalware para las carpetas de compilación & del proyecto
    • Abra Protección & contra amenazas de virus en la aplicación Windows 10 protección contra amenazas
    • Seleccione Manage Configuración (Administrar Configuración configuración de Protección & contra amenazas de virus).
    • Seleccione Agregar o quitar exclusiones en la sección Exclusiones .
    • Seleccione Agregar una exclusión y seleccione la carpeta que contiene el código del proyecto de Unity y las salidas de compilación.
  3. Uso de un SSD para la creación

Lea Optimización de los tiempos de compilación para IL2CPP para obtener más información.

Nota

Además, puede resultar útil configurar un servidor de caché, especialmente para los proyectos de Unity con una gran cantidad de activos (sin contar con los archivos de script), o que cambien constantemente de escenas o activos. Al abrir un proyecto, Unity almacena los activos aplicables en un formato de la memoria caché interna en la máquina del desarrollador. Los elementos se tienen que volver a importar y, por tanto, volver a procesar cuando se modifican. Este proceso se puede realizar una vez y guardar en un servidor de caché, de esta forma se comparte con otros desarrolladores, lo que ahorra tiempo al evitar que cada desarrollador tenga que procesar localmente los nuevos cambios que reimporte.

Propiedades de publicación

Pantalla de presentación holográfica

HoloLens una CPU y GPU de clase móvil, lo que significa que las aplicaciones pueden tardar un poco más en cargarse. Mientras se carga la aplicación, los usuarios solo verán el negro, por lo que es posible que se pregunten lo que está ocurrindo. Para garantizarlas durante la carga, puede agregar una pantalla de presentación holográfica.

Para alternar la pantalla de presentación holográfica:

  1. Vaya a la página Editar>Project Configuración>Player.
  2. Seleccione la pestaña Windows Store y abra la sección Imagen de presentación.
  3. Aplique la imagen en la Windows holographic holographic > splash image (Imagen de presentación holográfica holográfica).
    • Al alternar la opción Mostrar pantalla de presentación de Unity , se habilitará o deshabilitará la pantalla de presentación de marca de Unity. Si no tiene una licencia de Pro Unity, siempre se mostrará la pantalla de presentación de marca de Unity.
    • Si se aplica una imagen de presentación holográfica, siempre se mostrará si la casilla Mostrar pantalla de presentación de Unity está habilitada o deshabilitada. La especificación de una imagen de presentación holográfica personalizada solo está disponible para los desarrolladores con una licencia Pro Unity.
Mostrar pantalla de presentación de Unity Imagen de presentación holográfica Comportamiento
Activado Ninguno Muestra la pantalla de presentación predeterminada de Unity durante 5 segundos o hasta que se cargue la aplicación, lo que sea más largo.
Activado Personalizado Mostrar pantalla de presentación personalizada durante 5 segundos o hasta que se cargue la aplicación, lo que sea más largo.
Desactivado Ninguno Mostrar negro transparente (nada) hasta que se cargue la aplicación.
Desactivado Personalizado Mostrar pantalla de presentación personalizada durante 5 segundos o hasta que se cargue la aplicación, lo que sea más largo.

Lea la documentación de pantalla de presentación de Unity para obtener más información.

Pérdida de seguimiento

Un casco de realidad mixta depende de ver el entorno que lo rodea para construir sistemas de coordenadas bloqueados por el mundo, que permiten que los hologramas permanezcan en su posición. Cuando el casco no puede encontrarse en el mundo, se dice que el casco ha perdido el seguimiento. En estos casos, la funcionalidad dependiente de los sistemas de coordenadas bloqueados por el mundo, como las fases espaciales, los anclajes espaciales y la asignación espacial, no funcionan.

Si se produce una pérdida de seguimiento, el comportamiento predeterminado de Unity es detener la representación de hologramas, pausar el bucle del juego y mostrar una notificación de pérdida de seguimiento que sigue cómodamente la mirada de los usuarios. También se pueden proporcionar notificaciones personalizadas en forma de imagen de pérdida de seguimiento. En el caso de las aplicaciones que dependen del seguimiento durante toda su experiencia, es suficiente dejar que Unity lo controle completamente hasta que se recupere el seguimiento. Los desarrolladores pueden proporcionar una imagen personalizada que se mostrará durante el seguimiento de la pérdida.

Para personalizar la imagen perdida de seguimiento:

  1. Vaya a la página Editar>Project Configuración>Player.
  2. Seleccione la pestaña Windows store y abra la sección Imagen de presentación.
  3. Aplique la imagen en la Windows holographic > tracking loss image (Imagen de pérdida de seguimiento holográfico).

No participar en la pausa automática

Es posible que algunas aplicaciones no requieran seguimiento (por ejemplo, aplicaciones de solo orientación, como visores de vídeo de 360 grados) o que necesiten seguir procesando sin interrupciones mientras se pierde el seguimiento. Puede rechazar la pérdida predeterminada del comportamiento de seguimiento, pero es responsable de ocultar o deshabilitar los objetos, que no se representaría correctamente en un escenario de pérdida de seguimiento. En la mayoría de los casos, el único contenido que se recomienda representar en ese caso es el contenido bloqueado por el cuerpo, centrado alrededor de la cámara principal.

Para rechazar el comportamiento de pausa automática:

  1. Vaya a la página Edit>Project Configuración>Player (Editar Project Configuración Player).
  2. Seleccione la pestaña Windows Store y abra la sección Imagen de presentación.
  3. Modifique la Windows holographic on tracking loss Pause and Show Image (Pausar y mostrar imagen) de Holographic > On Tracking.

Seguimiento de eventos de pérdida

Para definir el comportamiento personalizado cuando se pierde el seguimiento, controle los eventos de pérdida de seguimiento global.

Funcionalidades

Para que una aplicación aproveche ciertas funcionalidades, debe declarar las funcionalidades adecuadas en su manifiesto. Las declaraciones de manifiesto se pueden realizar en Unity para que se incluyan en todas las futuras exportaciones de proyectos.

Las funcionalidades se pueden habilitar para Mixed Reality aplicación mediante:

  1. Vaya a la página Editar>Project Configuración>Player.
  2. Seleccione la Windows Store, abra la sección Publishing Configuración y busque la lista Capabilities (Funcionalidades).

Las funcionalidades aplicables para habilitar las API más usadas para aplicaciones holográficas son:

Capacidad API que requieren funcionalidad
SpatialPerception SurfaceObserver
WebCam PhotoCapture y VideoCapture
PicturesLibrary/VideosLibrary PhotoCapture o VideoCapture, respectivamente (al almacenar el contenido capturado)
Micrófono VideoCapture (al capturar audio), DictationRecognizer, GrammarRecognizer y KeywordRecognizer
InternetClient DictationRecognizer (y para usar Unity Profiler)

Consulte también