Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Unity proporciona un conjunto de opciones predeterminadas que suelen ser el caso promedio para 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 de entorno de alto rendimiento
Configuración de calidad baja
Es importante modificar la configuración de calidad de Unity a Muy baja para que la aplicación se ejecute y funcione bien a la velocidad de fotogramas adecuada, especialmente para el desarrollo de HoloLens. Para el desarrollo en auriculares inmersivos, dependiendo de las especificaciones del escritorio que alimenta la experiencia de realidad virtual, aún se puede lograr la velocidad de fotogramas sin los parámetros de calidad más bajos.
En Unity 2019 LTS+, puedes establecer el nivel de calidad del proyecto yendo a Editar>configuración de calidad> del proyecto y estableciendo el valor predeterminado haciendo clic en la flecha hacia abajo en el **Nivel de calidad muy bajo.
Configuración de iluminación
De forma similar a la configuración de escena de calidad, es importante establecer una configuración de iluminación óptima para la aplicación de Mixed Reality. En Unity, la configuración de iluminación que normalmente tendrá el mayor impacto en el rendimiento en su escena es la iluminación global en tiempo real. Puedes desactivar la iluminación global yendo a Representación de ventanas>>, Configuración de iluminación, Iluminación>global en tiempo real.
Hay otra configuración de iluminación, Baked Global Illumination. Esta configuración puede proporcionar resultados impactantes y de alto rendimiento en auriculares envolventes, pero no es aplicable para el desarrollo de HoloLens. La iluminación global horneada solo se calcula para GameObjects estáticos, que no se encuentran en las escenas de HoloLens debido a la naturaleza de un entorno desconocido y cambiante.
Lea Global Illumination de Unity para obtener más información.
Nota:
La iluminación global en tiempo real se establece por escena y, por lo tanto, los desarrolladores deben guardar esta propiedad para cada escena de Unity en su proyecto.
Ruta de representación de instancias de un solo paso
En las aplicaciones de Mixed Reality, la escena se representa dos veces: una para cada ojo. En comparación con el desarrollo 3D tradicional, esto duplica efectivamente la cantidad de trabajo que debe calcularse. Es importante seleccionar la ruta de representación más eficaz en Unity para ahorrar tiempo tanto en CPU como en tiempo de GPU. La representación por instancias de un solo paso 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 su proyecto de Unity
- Abra la configuración de OpenXR (vaya a Editar>configuración del> proyectoXR Plugin Management>OpenXR).
- Seleccione Single Pass Instanced en el menú desplegable Modo de renderización .
Lea los siguientes artículos de Unity para obtener más detalles con este enfoque de representación.
- Cómo maximizar el rendimiento de la realidad aumentada y la realidad virtual con la representación estéreo avanzada
- Instancia de un solo paso
Nota:
Un problema común con la representación por instancias de un solo paso se produce si los desarrolladores ya tienen sombreadores personalizados existentes que no están escritos para la creación de instancias. Después de habilitar esta característica, es posible que los desarrolladores observen que algunos GameObjects solo se representan en un ojo. Esto se debe a que los sombreadores personalizados asociados no tienen las propiedades adecuadas para crear instancias.
Habilitar el uso compartido del búfer
Para lograr una mejor estabilidad del holograma desde la percepción del usuario, se recomienda habilitar la propiedad Compartir búfer de profundidad en Unity. Al activar esta opción, Unity compartirá el mapa de profundidad producido por la aplicación con la plataforma de Windows Mixed Reality. Entonces, la plataforma puede optimizar mejor la estabilidad del holograma específicamente para la escena para cualquier fotograma dado que esté representando la aplicación.
Para habilitar esta característica en su proyecto de Unity
- Abra la configuración de OpenXR (vaya a Editar>configuración del> proyectoXR Plugin Management>OpenXR).
- 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. Si seleccionas la versión de 16 bits en comparación con la de 24 bits, se reducirán significativamente los requisitos de ancho de banda, ya que será necesario mover o procesar menos datos. Dicho esto, la optimización tiene un costo determinado. Asegúrese de comprender las implicaciones mencionadas en los cuadros importantes a continuación.
Para que la plataforma de Windows Mixed Reality optimice la estabilidad de los hologramas, depende del búfer de profundidad para que sea preciso y coincida con cualquier holograma representado en pantalla. Por lo tanto, con el uso compartido del búfer de profundidad activado, es importante que, al renderizar el color, también se procese la profundidad. En Unity, la mayoría de los materiales Opaque o TransparentCutout representarán la profundidad de forma predeterminada, pero los objetos transparentes y de texto no procesarán la profundidad, aunque esto depende de los sombreadores y otros factores.
Si usa el sombreador Standard de Mixed Reality Toolkit, para representar la profundidad de los objetos transparentes:
- Seleccione el material transparente que usa el sombreador MRTK Standard y abra la ventana del editor del Inspector.
- 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 configurando el Modo de representación en Personalizado; a continuación, establezca el Modo enTransparente y, por último, establezca la Profundidad de escritura en Activado.
Importante
Los desarrolladores deben tener cuidado con la lucha Z al cambiar estos valores junto con la configuración del plano cercano / lejano de la cámara. Z-Fighting ocurre cuando dos objetos del juego intentan renderizarse en el mismo píxel y debido a las limitaciones en la fidelidad del búfer de profundidad (es decir, profundidad z), Unity no puede discernir qué objeto está frente al otro. Los desarrolladores notarán un parpadeo entre dos objetos de juego mientras 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 más grande de valores para cada objeto para calcular su profundidad z de la cámara.
Sin embargo, se recomienda, sobre todo para el desarrollo de HoloLens, modificar los planos cercano y lejano 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 no se asigna linealmente al rango de valores a lo largo de los planos de cámara cercanos y lejanos. Esto se puede modificar seleccionando la cámara principal en su escena y, en Inspector, cambie los valores del plano de recorte cercano & lejano para reducir su alcance (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 la interfaz de usuario de Unity y otros efectos necesarios para la galería de símbolos no funcionarán a menos que se seleccione un formato de profundidad de 24 bits, lo que creará un búfer de galería de símbolos de 8 bits.
Construyendo para IL2CPP
Unity ha dejado de ser compatible con el back-end de scripting .NET y, por lo tanto, recomienda que los desarrolladores usen IL2CPP para sus compilaciones de Visual Studio para UWP. Aunque esto aporta varias ventajas, la creación de su 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 seguir las mejores prácticas para construir IL2CPP para ahorrar tiempo de iteración de desarrollo.
- Aproveche la compilación incremental compilando el proyecto en el mismo directorio cada vez, reutilizando los archivos precompilados allí.
- Deshabilita los exámenes de software antimalware para las carpetas de proyectos & compilaciones:
- Abra Protección contra amenazas de virus & en la aplicación de configuración de Windows 10
- Selecciona Administrar configuración en Configuración de protección contra virus & amenazas
- Selecciona 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 los resultados de la compilación
- Use un SSD para compilar.
Lea Optimización de tiempos de compilación para IL2CPP para obtener más información.
Nota:
Además, puede ser beneficioso configurar un servidor de caché, especialmente para proyectos de Unity con una gran cantidad de activos (excluyendo archivos de script) o escenas / activos en constante cambio. Al abrir un proyecto, Unity almacena los activos calificados en un formato de caché interno en la máquina del desarrollador. Los artículos deben volver a importarse y, por tanto, volver a procesarse cuando se modifican. Este proceso se puede realizar una vez y guardarse en un servidor de caché y, en consecuencia, compartirse con otros desarrolladores para ahorrar tiempo, en lugar de que cada desarrollador procese la reimportación de nuevos cambios localmente.
Propiedades de publicación
Pantalla de presentación holográfica
HoloLens tiene una CPU y una 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, por lo que es posible que se pregunten qué está pasando. Para tranquilizarlos durante la carga, puedes agregar una pantalla de presentación holográfica.
Para activar o desactivar la pantalla de presentación holográfica:
Vaya a la página Editar>reproductor de configuración del> proyecto.
Selecciona la pestaña de la Tienda Windows y abre la sección Imagen de presentación .
Aplicar la imagen en la propiedad Imagen de presentación holográfica de Windows Holographic>.
- Al alternar la opción Mostrar pantalla de presentación de Unity , se habilitará o deshabilitará la pantalla de presentación de la marca Unity. Si no tienes una licencia de Unity Pro, siempre se mostrará la pantalla de presentación de la marca 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 desarrolladores con una licencia de Unity Pro.
Mostrar pantalla de presentación de Unity Imagen de presentación holográfica Comportamiento Activado Ninguno Mostrar la pantalla de presentación de Unity predeterminada 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 la 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, lo que permite que los hologramas permanezcan en su posición. Cuando el auricular no puede ubicarse en el mundo, se dice que el auricular ha perdido el seguimiento. En estos casos, la funcionalidad que depende de sistemas de coordenadas internacionales bloqueados, como escenarios espaciales, delimitadores espaciales y mapeo espacial, no funciona.
Si se produce una pérdida de seguimiento, el comportamiento predeterminado de Unity es dejar de representar hologramas, pausar el bucle del juego y mostrar una notificación de pérdida de seguimiento que siga cómodamente la mirada de los usuarios. También se pueden proporcionar notificaciones personalizadas en forma de una imagen de pérdida de seguimiento. Para las aplicaciones que dependen del seguimiento para toda su experiencia, es suficiente dejar que Unity maneje esto por completo hasta que se recupere el seguimiento. Los desarrolladores pueden proporcionar una imagen personalizada para que se muestre durante la pérdida de seguimiento.
Para personalizar la imagen de pérdida de seguimiento:
- Vaya a la página Editar>reproductor de configuración del> proyecto.
- Selecciona la pestaña de la Tienda Windows y abre la sección Imagen de presentación .
- Aplique la imagen en la propiedad Imagen de pérdida de seguimiento holográfico > de Windows .
Optar por no participar en la pausa automática
Es posible que algunas aplicaciones no requieran seguimiento (por ejemplo, las aplicaciones de solo orientación , como los visores de vídeo de 360 grados) o que deban continuar el procesamiento sin interrupciones mientras se pierda el seguimiento. Puedes optar por no participar en la pérdida predeterminada del comportamiento de seguimiento, pero eres 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 el contenido bloqueado del cuerpo, centrado alrededor de la cámara principal.
Para no participar en el comportamiento de pausa automática:
- Vaya ala páginaEditar>reproductor de configuración> del proyecto.
- Selecciona la pestaña de la Tienda Windows y abre la sección Imagen de presentación
- Modifique la casilla Windows Holographic > On Tracking Loss, 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.
Capacidades
Para que una aplicación aproveche determinadas funciones, debe declarar las funcionalidades adecuadas en su manifiesto. Las declaraciones de manifiesto se pueden realizar en Unity para que se incluyan en cada exportación de proyectos futuros.
Las funcionalidades se pueden habilitar para una aplicación de Mixed Reality mediante:
- Vaya a la página Editar>reproductor de configuración del> proyecto.
- Seleccione la pestaña Tienda Windows , abra la sección Configuración de publicación y busque la lista Capacidades .
Las capacidades aplicables para habilitar las API que se usan comúnmente para aplicaciones holográficas son:
| Funcionalidad | API que requieren funcionalidad |
|---|---|
| SpatialPerception | SurfaceObserver |
| Cámara web | PhotoCapture y VideoCapture |
| Biblioteca de imágenes / Biblioteca de vídeos | PhotoCapture o VideoCapture, respectivamente (al almacenar el contenido capturado) |
| Micrófono | VideoCapture (al capturar audio), DictationRecognizer, GrammarRecognizer y KeywordRecognizer |
| InternetClient | DictationRecognizer (y usar Unity Profiler) |