Compartir a través de


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 bien en la velocidad de fotogramas adecuada, especialmente para el desarrollo de HoloLens. Para el desarrollo en cascos envolventes, dependiendo de las especificaciones del escritorio que alimenta la experiencia de VR, puede lograr la velocidad de fotogramas sin los parámetros de calidad más bajos.

En Unity 2019 LTS+, puede establecer el nivel de calidad del proyecto; para ello, vaya a Editar>proyecto Configuración> Quality y establezca default haciendo clic en la flecha hacia abajo en el nivel **Muy baja-calidad.

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 aplicación de Realidad mixta. En Unity, la configuración 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 Iluminación de representación>de ventanas>Configuración> Iluminación global de tiempo real.

Hay otro ajuste de iluminación, Iluminación global horneada. Esta configuración puede proporcionar resultados eficaces y visualmente sorprendentes en cascos envolventes, pero no es aplicable para el desarrollo de HoloLens. La iluminación global horneada solo se calcula para gameObject estáticos, que no se encuentran en las escenas de HoloLens debido a la naturaleza de un entorno desconocido y cambiante.

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

Nota:

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 representación de creación de instancias de un solo paso

En las aplicaciones de realidad mixta, la escena se representa dos veces: una por cada ojo. 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 de Unity para ahorrar en tiempo de CPU y GPU. La representación con instancia de paso único optimiza la canalización de representación de Unity para aplicaciones de realidad mixta; se recomienda habilitar esta configuración de forma predeterminada para cada proyecto.

Para habilitar esta característica en el proyecto de Unity

  1. Abra Configuración de OpenXR (vaya a Editar>Configuración del proyecto>Administración del complemento XR>OpenXR).
  2. Seleccione Instancia de un solo paso en el menú desplegable Modo de representación.

Lea los artículos siguientes 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.

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

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

Para habilitar esta característica en el proyecto de Unity

  1. Abra Configuración de OpenXR (vaya a Editar>Configuración del proyecto>Administración del complemento XR>OpenXR).
  2. Seleccione Profundidad de 16 bits en el menú desplegable Modo de envío de profundidad.

La configuración del búfer de profundidad de 16 bits se recomienda especialmente para el desarrollo de HoloLens. 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. Dicho esto, la optimización conlleva cierto costo. Asegúrese de comprender las implicaciones mencionadas en los cuadros Importantes que se indican a continuación.

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

Si usa el sombreador Estándar de Mixed Reality Toolkit, 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 Editor del 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 Modo en Transparente y, finalmente, establezca Escritura de profundidad en Activado.

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 de juego intentan representarse en el mismo píxel y debido a limitaciones en la fidelidad del búfer de profundidad (es decir, la profundidad z), Unity no puede distinguir qué objeto está delante del otro. Los desarrolladores observarán un parpadeo entre dos objetos de juego a medida que luchan por el mismo valor de profundidad z. Esto se puede resolver cambiando al formato de profundidad de 24 bits, ya que habrá un rango mayor de valores para cada objeto que se calculará para 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 rango más pequeño en su lugar y conservar el formato de profundidad de 16 bits. La profundidad z se asigna de forma no lineal al intervalo de valores a lo largo de los planos de cámara cercanos y lejanos. Esto se puede modificar seleccionando el Cámara Principal en la escena y en Inspector, cambie los valores del plano de recorte de Near & Far para reducir su rango (es decir, de 1000m a 100m 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 la interfaz de usuario de Unity y otros efectos necesarios para galerías de símbolos no funcionarán a menos que se seleccione el formato de profundidad de 24 bits, lo que creará un búfer de galería de símbolos de 8 bits.

Compilación para IL2CPP

Unity ha dejado de usar la compatibilidad 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 compilación de la solución de Visual Studio desde Unity para IL2CPP puede ser más lenta que el método de .NET anterior. Por lo tanto, se recomienda seguir los procedimientos recomendados para compilar IL2CPP para ahorrar en el tiempo de iteración de desarrollo.

  1. Aproveche la compilación incremental mediante la compilación del proyecto en el mismo directorio cada vez, reutilizando los archivos precompilados allí.
  2. Deshabilitar exámenes de software antimalware para sus carpetas de proyecto y compilación
    • Abrir virus y protección contra amenazas en la aplicación de configuración de Windows 10
    • Seleccione Administrar Configuración en Configuración de protección contra amenazas y 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 compilar

Lea Optimización de 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 tiene 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 negro y, por lo tanto, pueden preguntarse qué está pasando. Para tranquilizarlos durante la carga, puede agregar una pantalla de presentación holográfica.

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

  1. Vaya a editar>proyecto Configuración> páginaPlayer
  2. Seleccione la pestaña Tienda Windows y abra la sección Imagen de presentación.
  3. Aplique la imagen en la propiedad Windows Holographic Holographic > Splash Image .
    • 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 Unity Pro, 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. Especificar una imagen de presentación holográfica personalizada solo está disponible para los desarrolladores con una licencia de Unity Pro.
Mostrar pantalla de presentación de Unity Imagen de presentación holográfica Comportamiento
Activado None 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 Muestra la pantalla de presentación personalizada durante 5 segundos o hasta que se cargue la aplicación, lo que sea más largo.
Desactivado None Mostrar negro transparente (nada) hasta que se cargue la aplicación.
Desactivado Personalizado Muestra la 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 alrededor de él para construir sistemas de coordenadas bloqueados por el mundo, lo que permite que los hologramas permanezcan en posición. Cuando los auriculares no se pueden localizar en el mundo, se dice que los auriculares han perdido el seguimiento. En estos casos, la funcionalidad depende 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 perdida de seguimiento que sigue cómodamente la mirada de los usuarios. Las notificaciones personalizadas también se pueden proporcionar en forma de una imagen de pérdida de seguimiento. En el caso de las aplicaciones que dependen del seguimiento de toda su experiencia, es suficiente permitir que Unity controle todo esto hasta que se recupere el seguimiento. Los desarrolladores pueden proporcionar una imagen personalizada que se mostrará durante la pérdida de seguimiento.

Para personalizar la imagen perdida de seguimiento:

  1. Vaya a editar>proyecto Configuración> páginaPlayer
  2. Seleccione en la pestaña Tienda Windows y abra la sección Imagen de presentación.
  3. Aplique la imagen en la propiedad Windows Holographic > Tracking Loss Image .

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ían 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 contenido bloqueado por el cuerpo, centrado alrededor de la cámara principal.

Para no participar en el comportamiento de pausa automática:

  1. Vaya a la página Editar>proyecto Configuración Player>
  2. Seleccione la pestaña Tienda Windows y abra la sección Imagen de presentación.
  3. Modifique la casilla Windows Holographic > On Tracking Loss Pause (Pausar y mostrar imagen ).

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 determinadas 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 una aplicación de Mixed Reality mediante:

  1. Vaya a editar>proyecto Configuración> páginaPlayer
  2. Seleccione la pestaña Tienda Windows, abra la sección Publicación Configuración y busque la lista Funcionalidades.

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

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

Consulte también