Compartir a través de


Directrices de rendimiento para Mesh

Rendimiento

Este artículo es una introducción a la comprensión de la importancia del rendimiento al crear contenido en Mesh. Framerate es la unidad más fácil de racionalizar el rendimiento. Normalmente, la velocidad de fotogramas se mide en "fotogramas por segundo" (fps) o en cuántas veces la aplicación puede representar una imagen por segundo. La experiencia de un usuario se puede degradar considerablemente si el contenido no se ejecuta en una velocidad de fotogramas óptima. Para ayudarle a realizar un seguimiento y lograr la velocidad de fotogramas de calidad, Mesh proporciona una variedad de herramientas y recomendaciones.

En la tabla siguiente se muestra la velocidad de fotogramas de destino por plataforma compatible con Mesh.

PC Android (Quest)
Supervisión de la frecuencia de actualización (mínimo de 30 fps) 72 fps

Escenas simples frente a complejas

Al igual que con todo el desarrollo en 3D, en Mesh hay un equilibrio entre la fidelidad visual y el rendimiento. Dependiendo de la máquina que ejecuta Mesh, el usuario puede experimentar una disminución del rendimiento, especialmente si la escena es compleja.

Piense en el rendimiento como un presupuesto financiero. Si tiene $100 dólares para gastar, no puede gastar $60 representando un entorno complejo, $40 simulando física avanzada y $20 para scripts visuales, acabaría gastando en su presupuesto. Como desarrollador, tiene que hacer inconvenientes entre la fidelidad visual, la complejidad de la interacción, el número de usuarios y otros sistemas. El equipo de Mesh ha generado una lista de umbrales de rendimiento no como regla, sino una guía para el desarrollo.

Metodología de generación de perfiles

Normalmente, la creación de entornos en Mesh implica tres pasos.

  1. Creación de contenido en Unity
  2. Cargar en Microsoft Mesh
  3. Ejecución del contenido en la aplicación Mesh

Durante el paso uno, se recomienda usar una combinación de content Analizador de rendimiento (CPA) y Performance Profiler que se encuentra en el paquete del kit de herramientas mesh, que es necesario para cualquier proyecto de Unity que se use para generar un entorno mesh. Durante el paso dos, la herramienta CPA se ejecuta automáticamente. Por último, durante el paso tres final, la generación de perfiles debe producirse a través del generador de perfiles de rendimiento integrado de Mesh.

Herramientas para analizar el rendimiento

Analizador de rendimiento de contenido (CPA)

Se recomienda usar el Analizador de rendimiento de contenido (CPA) para maximizar el rendimiento de la experiencia de Mesh. La herramienta CPA puede analizar estáticamente el contenido en tiempo de creación. Puede usar la CPA para auditar recuentos de triángulos, lotes, uso de memoria de textura, etc. Esto le permite detectar problemas de optimización de contenido y oportunidades antes de que el contenido se cargue en Mesh.

Para ejecutar la herramienta CPA, seleccione Mesh Toolkit>Content Analizador de rendimiento en los elementos de menú.

Acceso al Analizador de rendimiento de contenido a través del menú de Unity

Los problemas y sugerencias se notifican a través de una ventana del editor en Unity.

Captura de pantalla de la ventana De contenido Analizador de rendimiento

Importante

Una parte de los analizadores de CPA se ejecutará automáticamente al cargar contenido en Mesh. Dado que no todas las pruebas se pueden ejecutar automáticamente, es bueno ejecutar el CPA manualmente como parte del proceso de desarrollo.

Generador de perfiles de rendimiento

Performance Profiler proporciona una ventana sencilla para ver la velocidad de fotogramas, la complejidad de la escena y el uso de memoria del proyecto mesh en todas las plataformas. El Generador de perfiles de rendimiento es accesible dentro de la aplicación Mesh y dentro del kit de herramientas de Mesh.

Captura de pantalla del generador de perfiles de rendimiento de forma aislada

Para ver el Generador de perfiles de rendimiento en la aplicación Mesh, abra el panel de configuración y seleccione Para desarrolladores>Performance Profiler. El Generador de perfiles de rendimiento aparecerá en el centro superior de la ventana.

Captura de pantalla del generador de perfiles de rendimiento en Mesh

Al usar el Generador de perfiles de rendimiento, busque fotogramas perdidos, que aparecen como cuadros rojos, marcados con una "x". Los fotogramas perdidos indican que el contenido no alcanza la velocidad de fotogramas de destino de Mesh y puede que necesite trabajo de optimización. La complejidad de la escena y el uso de memoria se muestran en los indicadores de fotogramas perdidos. Estos números pueden indicar por qué el contenido no cumple la velocidad de fotogramas objetivo de Mesh.

Diagrama de las métricas del generador de perfiles de rendimiento

El texto del Generador de perfiles de rendimiento se activará en rojo cuando una métrica no cumpla el umbral de rendimiento recomendado de Mesh. En una sección de procedimiento se muestran más detalles sobre los umbrales de rendimiento.

Importante

Los lotes no se pueden mostrar en la aplicación Mesh. Solo están disponibles en el editor de Unity.

También debe tener en cuenta la barra de memoria inferior para asegurarse de que el uso de memoria no cambia rápidamente ni se aproxima al límite de memoria de la aplicación.

Para ver el generador de perfiles de rendimiento en el editor de Unity, asegúrese de que tiene el componente De instalación del emulador de malla en la escena. Asegúrese de que la configuración Recuento de pantalla inicial es cero. Si es uno o superior, no podrá activar el generador de perfiles de rendimiento al reproducirlo.

Captura de pantalla del cuadro de diálogo Configuración del emulador de Malla

Haga clic en el botón Reproducir de Unity para entrar en modo de reproducción y active el generador de perfiles de rendimiento a través de la tecla "v". El Generador de perfiles de rendimiento aparecerá en el centro superior de la ventana del juego.

Captura de pantalla del generador de perfiles de rendimiento en el editor de Unity

Importante

Al ver el generador de perfiles de rendimiento en el editor de Unity, obtendrá más información, como los recuentos de lotes y el tiempo milisegundo que se tarda en ejecutar determinados subsistemas. Tenga en cuenta que estas métricas son una aproximación relativa del rendimiento y la generación de perfiles finales deben producirse dentro de la aplicación Mesh.

Si tiene curiosidad por cuáles son los milisegundos en la parte inferior del Generador de perfiles de rendimiento que mide, puede encontrar esa información en la sección Umbrales de rendimiento.

Otras herramientas

Tanto el CPA como el Generador de perfiles de rendimiento son personalizados creados para Mesh, pero también hay una serie de herramientas excelentes para generar perfiles de contenido en Unity:

Umbrales de rendimiento

La optimización del rendimiento puede ser un acto de equilibrio en función del escenario para el que esté desarrollando y de la experiencia que desee lograr. La representación de una escena en Mesh es una consecuencia directa de cómo se crea el contenido del entorno. A continuación se muestran sugerencias de representación para nuestras plataformas actuales.

Umbrales de representación de EQUIPOS

Polycount Lotes Procesamiento posterior
<~500 000 triángulos ~200 lotes Deshabilitado
Texturas Mapas de luz Resolución de Skybox
< ~160 MB < ~80 MB 2048x4096

Umbrales de representación de Android (Quest)

Polycount Lotes Procesamiento posterior
<~80 000 triángulos ~50 lotes Deshabilitado
Texturas Mapas de luz Resolución de Skybox
< ~16 MB < ~20 MB 1024x2048

Es posible que observe que las restricciones del sombreador no se especifican en las tablas anteriores. Dado que Mesh usa la canalización de representación universal (URP) de Unity, le sugerimos que use sombreadores de URP predefinidos más baratos (como Canalización de representación universal/ Canalización de representación universal/Canalización de representación universal/Simple Lit). También entendemos el valor de los sombreadores personalizados. En general, intentamos mantener nuestros sombreadores personalizados para la mayoría del entorno dentro de los umbrales siguientes:

Matemáticas de vértices Matemáticas de fragmentos Textura
< 30 operaciones < 120 operaciones < 2 búsquedas

Importante

El recuento de operaciones de sombreador está en una métrica imperfecta para calcular el rendimiento del sombreador, un desarrollador de sombreador también debe generar perfiles de su sombreador que se ejecuta en Mesh para comprobar que se ejecuta de forma eficaz.

Si tiene curiosidad por la configuración de la canalización de representación del URP para la aplicación Mesh, puede inspeccionar los representadores específicos de la plataforma en el directorio \Library\PackageCache\com.microsoft.mesh.toolkit\mesh.toolkit.uploader\Assets\URP .

Umbrales de scripting

Mesh permite crear contenido interactivo a través de scripting visual, scripting en la nube, Física de malla o WebSlate. Al ver el generador de perfiles de rendimiento en el editor de Unity, el milisegundos (ms) veces que tarda determinados subsistemas en ejecutarse se muestra en la parte inferior del generador de perfiles. Cuando el texto cambia de verde a rojo que indica que un subsistema podría superar el presupuesto. En la tabla siguiente se proporciona más información sobre estos presupuestos.

Nombre del subsistema Presupuesto máximo de fotogramas Descripción
Comportamiento N/D Milisegundos tiempo necesario para actualizar todos los scripts locales de MonoBehaviour (C# y Visual)
Renderización 25 % Tiempo de milisegundos para la representación de CPU de la escena
WebSlate N/D Tiempo de milisegundos para actualizar y representar cualquier WebSlates en la escena
Phys Sim 15 % Tiempo de milisegundos para realizar el paso de la simulación de PhysX
Sincronización de Phys 15 % Milisegundos tiempo para sincronizar todos los cuerpos físicos
Phys Effx 10 % Milisegundos de tiempo para actualizar comportamientos físicos a medida
Usuario de VS 15 % Milisegundos tiempo invertido en gráficos de script visual colocados en la escena
VS Env 10 % Milisegundos tiempo invertido en actualizar la infraestructura de Visual Script
VS Net 10 % Milisegundos tiempo dedicado a sincronizar el estado de red de Visual Script

Los valores "Porcentaje máximo de fotogramas" enumerados anteriormente son recomendaciones basadas en contenido genérico. Como desarrollador, es necesario equilibrar estos sistemas para asegurarse de que el marco se puede actualizar a tiempo.

Recursos de rendimiento y optimización

Aspectos básicos del rendimiento de gráficos https://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html

Canalización de representación universal (URP) https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@14.0/manual/index.html

Batcher de SRP https://docs.unity3d.com/Manual/SRPBatcher.html

Representación de instancias de un solo paso y sombreadores personalizados https://docs.unity3d.com/Manual/SinglePassInstancing.html