Optimización del rendimiento móvil con Adaptive Performance 4.0
Descarga Unity 2022.1 Tech Stream y descubre Adaptive Performance 4.0. Impulse el rendimiento de Android aún más en los dispositivos Samsung con cuatro escaladores más que cubren la física, las calcomanías, la personalización y la eliminación de capas, además de soporte para secuencias de comandos visuales para optimizar el rendimiento de la aplicación.
Descarga Unity 2022.1 Tech Stream y descubre Adaptive Performance 4.0. Impulse el rendimiento de Android aún más en los dispositivos Samsung con cuatro escaladores más que cubren la física, las calcomanías, la personalización y la eliminación de capas, además de soporte para secuencias de comandos visuales para optimizar el rendimiento de la aplicación.
Unity 2022.1 brinda acceso anticipado a nuevas características innovadoras que informarán la próxima versión de soporte a largo plazo (LTS). En este paquete verificado, Adaptive Performance 4.0 viene con algunas novedades excelentes para expandir la escala de su aplicación y mejorar su rendimiento general.
En GDC 2022, compartimos las últimas actualizaciones de Adaptive Performance 4.0 durante nuestra charla con Samsung, Revelando su potencial de juego con Galaxy GameDev . Siga leyendo para ver el resumen.
Guiones visuales
Con nuestra integración de secuencias de comandos visuales, casi cualquier persona puede aprovechar Adaptive Performance para escalar su aplicación y prolongar la duración de la batería. Al instalar Adaptive Performance 4.0, el sistema de secuencias de comandos visuales de Unity proporcionará unidades para que pueda acceder a las métricas de Adaptive Performance sin implementar nada en C#.
En otras palabras, una vez que instala el paquete de secuencias de comandos visuales, Unity activa automáticamente las unidades de Adaptive Performance. Luego puede agregar Adaptive Performance a un proyecto con gráficos de secuencias de comandos visuales existentes, pero debe volver a compilar las unidades. Para obtener una demostración detallada y las mejores prácticas, consulte la documentación de muestra de Adaptive Performance .
A medida que Unity regenera las unidades de rendimiento adaptativo, puede agregar nuevas unidades a su gráfico haciendo clic con el botón derecho en el fondo de cualquier gráfico de secuencia de comandos. Vaya al submenú Rendimiento adaptativo para ubicar las unidades.
Partículas en Boat Attack
Este es un ejemplo de cómo usar Adaptive Performance en secuencias de comandos visuales. La imagen a continuación representa una porción de Boat Attack , donde todas las partículas se desactivan en "estrangulamiento inminente" y se habilitan si no hay advertencias presentes. Escalamos efectos tales como el chapoteo de las olas del agua, el humo del motor de un barco y la formación de estelas de parapente, ya que son pesados para la CPU y la GPU. Esto mejora el rendimiento con cambios mínimos en el juego en sí.
Cada vez que hay un cambio de advertencia térmica, hacemos que el Sistema de partículas lo itere, luego detenemos el Sistema de partículas o lo reiniciamos nuevamente. Por supuesto, esto se puede ajustar a las necesidades del juego. Por ejemplo, en lugar de deshabilitar los efectos por completo, puede escalar los números de emisor o la calidad de las imágenes de origen.
Todas las API de Adaptive Performance se reinventan en secuencias de comandos visuales. Puede encontrar una lista completa de las API y su información relacionada en la documentación de integración de secuencias de comandos visuales .
Escaladores
Además de los muchos escaladores ya disponibles , agregamos cuatro nuevos escaladores a Adaptive Performance 4.0:
- Escalador de eliminación de capas
- Escalador de calcas
- Escalador personalizado
- Escalador de física
Los beneficios del sistema indexador y todos los escaladores integrados en él incluyen:
- Estabilización de la velocidad de fotogramas
- Estrangulamiento mínimo
- Rescate de estrangulamiento
- Escalado automático de contenido durante el tiempo de ejecución
- Escalado sin recompilar la fuente en millones de dispositivos
- Integración sencilla
- Alta calidad
- Bajo mantenimiento
El módulo personalizado Adaptive Performance Unity Profiler le muestra cómo cambian los escaladores para que pueda ver si están haciendo bien su trabajo o si necesita modificarlos. El siguiente ejemplo comprende Boat Attack ejecutándose en un Samsung Fold3 en modo desplegado, que utiliza una resolución bastante alta.
Boat Attack comienza con muchos escaladores involucrados en la escena del menú, que se estabilizó antes de que se realizara la captura. En este ejemplo, la temperatura aumenta rápidamente y el dispositivo se estrangula.
Adaptive Performance intenta estabilizar la situación y reducir los efectos en la GPU, ya que este es claramente el cuello de botella. Por lo tanto, los escaladores de sombras reducen la calidad rápidamente, pero como eso no es suficiente, también disminuyen tanto la distancia de visualización como la resolución. A continuación, la velocidad de fotogramas se estabiliza y la temperatura desciende. El juego se salva de la aceleración y su velocidad de fotogramas aumenta a 60 fps.
Escalador de eliminación de capas
Con el escalador de eliminación de capas, puede ajustar dinámicamente las distancias de eliminación de capas en tiempo de ejecución.
Esta función utiliza el sistema indexador para tomar ciertas decisiones, como cuándo y cuánto aumentar o disminuir las distancias de eliminación de capas para lograr un rendimiento y una estabilidad térmica óptimos.
La muestra que enviamos con Adaptive Performance se repite en una carga de CPU media hasta que alcanza velocidades de cuadro críticas y luego disminuye la distancia de eliminación de capas. El resultado de esto es que la distancia de selección de las capas cambia según la carga de la CPU y la GPU.
Puede establecer un valor diferente para la distancia de eliminación selectiva de cada capa para que se escalen proporcionalmente. Esto le ayuda a determinar qué objetos eliminar antes para ahorrar rendimiento. Para obtener detalles sobre cómo hacer esto, consulte el siguiente ejemplo de código .
Calcomanías adaptables
Las calcomanías adaptativas tienen como objetivo los efectos visuales. En Amazing Adventures of Dr. Arm , hay un escenario de lucha de jefes que utiliza muchas partículas y proyectores de calcomanías. Cuando el dispositivo móvil se calienta y la limitación es inminente (o ya se está produciendo), la cantidad de partículas emitidas se reduce. En este caso, los emisores menos importantes desde el punto de vista visual, como las hojas que se mueven con el viento, las chispas diminutas y otros elementos similares, se apagan por completo. El escalador también reduce las distancias de las calcomanías.
Sin advertencias
estrangulamiento
Aún más, las colisiones están deshabilitadas en algunas partículas. Una vez que la carga térmica disminuye, podemos volver a escalar estos efectos.
Escalador personalizado
El escalador personalizado implementa un escalador de niebla e incluso lo ayuda a crear sus propios escaladores cuando no los ofrecemos directamente. El escalador personalizado aumenta la niebla y reduce la distancia de visión cuando aumenta la carga térmica. Esta acción disminuye la carga en el sistema para que pueda recuperarse.
El posprocesamiento puede convertirse rápidamente en una de las partes más costosas de renderizar del marco. Aunque no son cruciales para el juego, pueden agregar más ambiente y mejorar el arte en el que el equipo de desarrollo trabaja tan duro.
Adaptive Performance brinda el beneficio de incluir los efectos de procesamiento posterior del juego en el rango completo, pero también reduce los efectos que no son necesarios en momentos de máxima demanda del dispositivo. Cuando la aceleración está en marcha, desactivamos efectos específicos en Amazing Adventures of Dr. Arm que se incluyeron principalmente para mejorar el estado de ánimo de la escena, sin afectar sustancialmente el juego. Fog, Bloom, Depth of Field, Screen Space Ambient Occlusion (SSAO) y Motion Blur son algunos ejemplos excelentes de efectos visuales que pueden agregar mucho, pero no son necesarios para el juego. Estos ajustes permiten mejoras significativas en el rendimiento del juego.
Sin advertencias
estrangulamiento
Física adaptativa
Adaptative Physics cambia el tiempo delta fijo en el que se actualiza el motor de física. Si lo usa para otros sistemas, también se escalarán. Pero si usa los tiempos delta fijos en otros sistemas, es posible que desee crear su propio escalador de física para emplear configuraciones más detalladas en lugar del tiempo delta fijo.
Consulte la comparación anterior de un valor Time.fixedDeltaTime original y una versión reducida. El tiempo de cuadro promedio del original es de 28 ms y el tiempo de cuadro promedio de la versión reducida es de 21 ms.