Share via


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 con una velocidad de fotogramas óptima. Para ayudarle a realizar un seguimiento y lograr una 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 (30 fps como mínimo) 72 fps

Escenas simples frente a complejas

Al igual que con todo el desarrollo 3D, en Mesh existe un equilibrio entre la fidelidad visual y el rendimiento. En función 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 compensar los 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 su experiencia de Malla. La herramienta CPA puede analizar estáticamente el contenido en tiempo de creación. Puede usar el CPA para auditar los recuentos de triángulos, lotes, uso de la memoria de textura, etc. Esto le permite detectar problemas y oportunidades de optimización de contenido 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 Analizador de rendimiento de contenido

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 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 un trabajo de optimización. La complejidad de la escena y el uso de memoria se muestran en los indicadores de fotogramas que faltan. Estos números pueden indicar por qué el contenido no cumple la velocidad de fotogramas objetivo de Mesh.

Diagrama de las métricas de Performance Profiler

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 un ojo en 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 Mesh Emulator Setup (Configuració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á alternar en el Generador de perfiles de rendimiento al reproducir.

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 cambie 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 recuentos de lotes y tiempo de milisegundos 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 los tiempos de milisegundos en la parte inferior del Generador de perfiles de rendimiento, 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 para Mesh, pero también hay una serie de excelentes herramientas 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 para nuestras plataformas actuales.

Umbrales de representación de EQUIPOS

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

Umbrales de representación de Android (Quest)

Polycount Instancias de Batch Procesamiento posterior
<~80 000 triángulos ~50 lotes Disabled
Texturas Mapas de luz Resolución de Skybox
< ~15 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, se recomienda usar sombreadores URP de serie más baratos (como canalización de representación universal /canalización de representación universal o 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 de 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 mediante 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, los milisegundos (ms) veces que tardan determinados subsistemas en ejecutarse se muestran en la parte inferior del generador de perfiles. Cuando el texto cambia de verde a rojo, lo 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 Tiempo de milisegundos necesario para actualizar todos los scripts locales de MonoBehaviour (C# y Visual)
Representació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 recorrer la simulación PhysX
Sincronización de Phys 15 % Milisegundo tiempo para sincronizar todos los cuerpos físicos
Phys Effx 10 % Milisegundos tiempo para actualizar comportamientos físicos personalizados
Usuario de VS 15 % Milisegundos tiempo invertido en gráficos de Visual Script colocados en la escena
VS Env 10 % Milisegundos tiempo dedicado a actualizar la infraestructura de Visual Script
VS Net 10 % Milisegundos tiempo dedicado a sincronizar el estado de red del script visual

Los valores "Max Frame Percentage" enumerados anteriormente son recomendaciones basadas en contenido genérico. Como desarrollador, puede equilibrar estos sistemas para asegurarse de que el fotograma se puede actualizar en el tiempo asignado.

Recursos de rendimiento y optimización

Aspectos básicos del rendimiento de gráficoshttps://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

SRP Batcherhttps://docs.unity3d.com/Manual/SRPBatcher.html

Representación de instancias de paso único y sombreadores personalizadoshttps://docs.unity3d.com/Manual/SinglePassInstancing.html