Optimización del rendimiento móvil con Adaptive Performance 4.0

DAVID BERGER / UNITY TECHNOLOGIESContributor
Jun 29, 2022|11 minutos
Optimización del rendimiento móvil con Adaptive Performance 4.0
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Descarga Unity 2022.1 Tech Stream y descubre Adaptive Performance 4.0. Aumenta aún más el rendimiento de Android en los dispositivos Samsung con cuatro escaladores más que cubren la física, las calcomanías, la personalización y la selección de capas, además de la compatibilidad con secuencias de comandos visuales para optimizar el rendimiento de las aplicaciones.

Unity 2022.1 ofrece acceso anticipado a nuevas funciones innovadoras que se incluirán en la próxima versión de soporte a largo plazo (LTS). En este paquete verificado, Adaptive Performance 4.0 viene con algunas novedades estupendas para ampliar el escalado de tu aplicación y mejorar su rendimiento general.

En la GDC 2022, compartimos las últimas actualizaciones de Adaptive Performance 4.0 durante nuestra charla con Samsung, Unfolding your gaming potential with Galaxy GameDev. Siga leyendo.

<p>Scripting visual</p>

Con nuestra integración de scripts visuales, prácticamente cualquiera 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 scripting visual de Unity proporcionará unidades para que puedas acceder a las métricas de Adaptive Performance sin implementar nada en C#.

Captura de pantalla del menú de scripting visual de Unity

En otras palabras, una vez instalado el paquete de scripting visual, Unity activa automáticamente las unidades de Rendimiento Adaptativo. A continuación, puede añadir Adaptive Performance a un proyecto con gráficos de secuencias de comandos visuales existentes, pero deberá recompilar las unidades. Para ver una demostración detallada y las mejores prácticas, consulte la documentación de ejemplo de Rendimiento adaptable.

A medida que Unity regenera las unidades de Rendimiento Adaptativo, usted puede añadir nuevas unidades a su gráfico haciendo clic con el botón derecho del ratón en el fondo de cualquier gráfico de script. Vaya al submenú Rendimiento adaptable para localizar las unidades.

Partículas en el ataque a barcos

He aquí un ejemplo de cómo utilizar el Rendimiento Adaptativo en scripts visuales. La imagen de abajo representa un trozo de Ataque de barcoen el que todas las partículas se desactivan en "estrangulamiento inminente" y se activan si no hay avisos presentes. Escalamos efectos como el chapoteo de las olas de agua, el humo del motor de los barcos 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 propio juego.

Diagrama de flujo de Visual Scripting

Cada vez que se produce un cambio de alerta térmica, hacemos que el Sistema de Partículas itere sobre él y, a continuación, detenemos el Sistema de Partículas o lo reiniciamos de nuevo. Por supuesto, esto puede ajustarse a las necesidades del juego. Por ejemplo, en lugar de desactivar los efectos por completo, puede escalar el número de emisores o la calidad de las imágenes de origen.

Todas las API de Rendimiento Adaptativo se reimaginan en secuencias de comandos visuales. Encontrará una lista completa de las API y su información relacionada en la documentación sobre la integración de secuencias de comandos visuales.

<p>Escaladores</p>

Además de los numerosos escaladores ya disponibles, hemos añadido cuatro nuevos escaladores a Rendimiento Adaptable 4.0:

  • Escalador de selección de capas
  • Escalador de calcomanías
  • Escalador personalizado
  • Escalador físico

Entre las ventajas del sistema indexador, y de todos los escaladores construidos sobre él, se incluyen:

  • Estabilización de la frecuencia de imagen
  • Estrangulamiento mínimo
  • Rescate del estrangulamiento
  • Escalado automático de contenidos durante la ejecución
  • Escalado sin recompilar el código fuente en millones de dispositivos
  • Integración sencilla
  • Alta calidad
  • Bajo mantenimiento

El módulo personalizado Adaptive Performance Unity Profiler te muestra cómo cambian los escaladores para que puedas ver si están haciendo bien su trabajo o si necesitas retocarlos. El ejemplo de abajo comprende Boat Attack ejecutándose en un Samsung Fold3 en modo desplegado, que utiliza una resolución bastante alta.

Escaladores del menú principal de Boat Attack

Boat Attack comienza con un montón de escaladores ocupados por la escena del menú, que se estabilizó antes de realizar la captura. En este ejemplo, la temperatura sube rápidamente y el aparato entra en estrangulamiento.

El Rendimiento Adaptativo intenta estabilizar la situación y reducir los efectos en la GPU, ya que es claramente el cuello de botella. De este modo, los escaladores de sombras reducen rápidamente la calidad, pero como eso no es suficiente, también disminuyen la distancia de visión y la resolución. A continuación, la frecuencia de imagen se estabiliza y la temperatura desciende. El juego se libra de la ralentización y su tasa de imágenes por segundo sube a 60 fps.

Escalador de selección de capas

Con el escalador de selección de capas, puede ajustar dinámicamente las distancias de selecció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 obtener un rendimiento y una estabilidad térmica óptimos.

La muestra que enviamos con Rendimiento Adaptativo hace un bucle en carga media de CPU hasta que alcanza frecuencias de cuadro críticas y, a continuación, disminuye la distancia de sacrificio de las capas. El resultado es que la distancia de sacrificio de las capas cambia en función de la carga de la CPU y la GPU.

Puede establecer un valor diferente para la distancia de selección de cada capa para que se escalen proporcionalmente. Esto le ayuda a determinar qué objetos deben eliminarse antes para ahorrar rendimiento. Para más detalles sobre cómo hacerlo, consulte el siguiente ejemplo de código.

Calcomanías adaptables

Las calcomanías adaptativas se dirigen a los efectos visuales. En Amazing Adventures of Dr. Arm, hay un escenario de lucha contra un jefe que utiliza muchas partículas y proyectores de calcomanías. Cuando el dispositivo móvil se calienta y la ralentización es inminente (o ya se está produciendo), el número de partículas emitidas se reduce. En este caso, los emisores menos importantes visualmente, como las hojas que soplan al viento, las pequeñas chispas y otros elementos similares, se apagan por completo. El escalador también reduce las distancias de las calcas.

Sin advertencias

Un personaje que empuña una espada se enfrenta en un bosque a un mago embozado que hace caer del cielo rayos rojos.

Estrangulamiento

Un personaje que empuña una espada se enfrenta en un bosque a un mago embozado que hace caer del cielo rayos rojos.

Es más, las colisiones están desactivadas en algunas partículas. Una vez que la carga térmica disminuya, podremos volver a escalar estos efectos.

Escalador personalizado

El escalador personalizado implementa un escalador de niebla, e incluso le 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 del sistema para que pueda recuperarse.

El postprocesado puede convertirse rápidamente en una de las partes del fotograma más caras de renderizar. Aunque no son cruciales para la jugabilidad, pueden añadir más ambiente y realzar el arte en el que tanto trabaja el equipo de desarrollo.

El Rendimiento Adaptativo ofrece la ventaja de incluir los efectos de postprocesado del juego en toda su gama, pero también reduce los efectos que no son necesarios en momentos de máxima demanda del dispositivo. Cuando el estrangulamiento está en marcha, desactivamos determinados efectos en Amazing Adventures of Dr. Brazo que se incluyeron principalmente para realzar el ambiente de la escena, sin afectar sustancialmente a la jugabilidad. La niebla, la floración, la profundidad de campo, la oclusión ambiental en el espacio de la pantalla (SSAO) y el desenfoque de movimiento son algunos ejemplos excelentes de efectos visuales que pueden aportar mucho, pero que no son necesarios para la jugabilidad. Estos ajustes permiten mejorar considerablemente el rendimiento del juego.

Sin advertencias

Escena con fondo de bosque y campo con una figura apuntando a un objetivo a través de la niebla

Estrangulamiento

Escena con fondo de bosque y campo con una figura apuntando a un blanco

Física adaptativa

Adaptive Physics cambia el tiempo delta fijo en el que se actualiza el motor de física. Si lo utilizas para otros sistemas, éstos también se escalarán. Pero si utilizas los tiempos delta fijos en otros sistemas, puede que quieras crear tu propio escalador de física para emplear ajustes más detallados en lugar del tiempo delta fijo.

Véase la comparación anterior de un valor Time.fixedDeltaTime original y una versión reducida. El tiempo medio de fotograma del original es de 28 ms y el de la versión reducida es de 21 ms.

Nuestro equipo de Adaptive Performance trabaja constantemente para ampliar el paquete y el alcance de su plataforma, y estamos entusiasmados con los nuevos proveedores que llegarán en el futuro. Como siempre, agradeceremos sus comentarios en nuestro foro de Rendimiento Adaptativo. No dude en ponerse en contacto con nosotros.