Optimisation des performances mobiles avec Adaptive Performance 4.0

DAVID BERGER / UNITY TECHNOLOGIESContributor
Jun 29, 2022|11 Min
Optimisation des performances mobiles avec Adaptive Performance 4.0
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.

Téléchargez Unity 2022.1 Tech Stream et découvrez Adaptive Performance 4.0. Poussez les performances d'Android encore plus loin sur les appareils Samsung avec quatre scalpeurs supplémentaires qui couvrent la physique, les décalcomanies, la personnalisation et l'élimination des couches, ainsi que la prise en charge des scripts visuels pour optimiser les performances de l'application.

Unity 2022.1 offre un accès anticipé à de nouvelles fonctionnalités innovantes qui seront intégrées dans la prochaine version LTS (Long Term Support). Dans ce paquet vérifié, Adaptive Performance 4.0 est livré avec quelques nouveaux ajouts importants pour étendre la mise à l'échelle de votre application et améliorer sa performance globale.

Lors de la GDC 2022, nous avons partagé les dernières mises à jour d'Adaptive Performance 4.0 lors de notre conférence avec Samsung, Unfolding your gaming potential with Galaxy GameDev. Lisez la suite pour en savoir plus.

<p>Scripts visuels</p>

Grâce à notre intégration de scripts visuels, tout le monde peut tirer parti de la performance adaptative pour faire évoluer son application et prolonger la durée de vie de la batterie. Lors de l'installation d'Adaptive Performance 4.0, le système de script visuel d ' Unity fournira des unités vous permettant d'accéder aux mesures d'Adaptive Performance sans avoir à implémenter quoi que ce soit en C#.

Capture d'écran du menu de script visuel d'Unity

En d'autres termes, dès que vous installez le paquet de scripts visuels, Unity active automatiquement les unités Adaptive Performance. Vous pouvez alors ajouter Adaptive Performance à un projet avec des graphes de script visuel existants, mais vous devez recompiler les unités. Pour une démonstration détaillée et les meilleures pratiques, consultez la documentation d'exemple d'Adaptive Performance.

Comme Unity régénère les unités de performance adaptative, vous pouvez ajouter de nouvelles unités à votre graphique en cliquant avec le bouton droit de la souris sur l'arrière-plan de n'importe quel graphique de script. Allez dans le sous-menu Adaptive Performance pour localiser les unités.

Les particules dans l'attaque des bateaux

Voici un exemple d'utilisation de la performance adaptative dans un script visuel. L'image ci-dessous représente une tranche de Attaque de bateauoù toutes les particules sont désactivées en cas de "throttling imminent" et activées en l'absence d'avertissement. Nous réduisons les effets tels que les vagues d'eau, la fumée des moteurs de bateau et la formation des traînées de parapente, car ils sollicitent fortement l'unité centrale et l'unité de traitement graphique. Cela permet d'améliorer les performances avec un minimum de changements dans le jeu lui-même.

Organigramme Visual Scripting

Chaque fois qu'il y a un changement d'alerte thermique, nous faisons itérer le système de particules, puis nous l'arrêtons ou le redémarrons. Bien entendu, cela peut être adapté aux besoins du jeu. Par exemple, au lieu de désactiver complètement les effets, vous pouvez réduire le nombre d'émetteurs ou la qualité des images sources.

Toutes les API d'Adaptive Performance sont réimaginées sous forme de scripts visuels. Une liste complète des API et des informations qui s'y rapportent est disponible dans la documentation sur l'intégration des scripts visuels.

<p>Scalers</p>

En plus des nombreux scalers déjà disponibles, nous avons ajouté quatre nouveaux scalers à Adaptive Performance 4.0 :

  • Échelle d'abattage des couches
  • Décalcomanieurs
  • Mesureur personnalisé
  • Échelle de physique

Les avantages du système d'indexation, et de tous les scalers qui en dépendent, sont les suivants :

  • Stabilisation de la fréquence d'images
  • Un étranglement minimal
  • Sauver de l'étranglement
  • Mise à l'échelle automatique du contenu pendant l'exécution
  • Mise à l'échelle sans recompilation des sources sur des millions d'appareils
  • Une intégration simple
  • Haute qualité
  • Peu d'entretien

Le module Adaptive Performance Unity Profiler personnalisé vous montre comment les scalers changent afin que vous puissiez voir s'ils font bien leur travail ou si vous devez les ajuster. L'exemple ci-dessous montre Boat Attack fonctionnant sur un Samsung Fold3 en mode déplié, qui utilise une résolution assez élevée.

Les scalpeurs du menu principal de Boat Attack

Boat Attack commence avec de nombreux scalpeurs engagés par la scène du menu, qui a été stabilisée avant la capture. Dans cet exemple, la température augmente rapidement et l'appareil se met en veilleuse.

Adaptive Performance tente de stabiliser la situation et de réduire les effets sur le GPU, qui est clairement le goulot d'étranglement. Les scalpeurs d'ombre réduisent ainsi rapidement la qualité - mais comme cela ne suffit pas, la distance de visualisation et la résolution diminuent également. La fréquence d'images se stabilise ensuite et la température baisse. Le jeu est sauvé de l'étranglement et son taux de rafraîchissement passe à 60 fps.

Échelle d'abattage des couches

Avec l'échelle d'élimination des couches, vous pouvez ajuster dynamiquement les distances d'élimination des couches au moment de l'exécution.

Cette fonction utilise le système d'indexation pour prendre certaines décisions, comme le moment et l'ampleur de l'augmentation ou de la diminution des distances d'élimination des couches pour une performance et une stabilité thermique optimales.

L'échantillon que nous livrons avec Adaptive Performance tourne en boucle avec une charge CPU moyenne jusqu'à ce qu'il atteigne des taux d'images critiques, puis diminue la distance d'abattage des couches. Il en résulte que la distance d'abattage des couches varie en fonction de la charge du CPU et du GPU.

Vous pouvez définir une valeur différente pour la distance d'abattage de chaque couche de manière à ce qu'elles soient proportionnellement mises à l'échelle. Cela vous permet de déterminer quels objets doivent être éliminés plus tôt afin d'améliorer les performances. Pour plus de détails sur la manière de procéder, voir l'exemple de code suivant.

Autocollants adaptatifs

Les décalcomanies adaptatives ciblent les effets visuels. Sur le site Amazing Adventures of Dr. Arm, il y a un scénario de combat de boss qui utilise beaucoup de particules et de projecteurs de décalcomanies. Lorsque l'appareil mobile chauffe et que l'étranglement est imminent (ou se produit déjà), le nombre de particules émises diminue. Dans ce cas, les émetteurs moins importants sur le plan visuel, comme les feuilles soufflant dans le vent, les petites étincelles et autres éléments de ce type, s'éteignent complètement. Le mesureur permet également de réduire les distances entre les décalcomanies.

Pas d'avertissement

Un personnage brandissant une épée affronte dans une forêt un sorcier masqué qui fait tomber du ciel des foudres rouges.

L'étranglement

Un personnage brandissant une épée affronte dans une forêt un sorcier masqué qui fait tomber du ciel des foudres rouges.

De plus, les collisions sont désactivées sur certaines particules. Une fois que la charge thermique aura diminué, nous pourrons augmenter ces effets.

Mesureur personnalisé

Le scalpeur personnalisé met en œuvre un scalpeur de brouillard, et vous aide même à créer vos propres scalpeurs lorsque nous ne les proposons pas directement. L'échelle personnalisée augmente le brouillard et réduit la distance de visualisation lorsque la charge thermique augmente. Cette action permet de réduire la charge du système afin qu'il puisse se rétablir.

Le post-traitement peut rapidement devenir l'une des parties les plus coûteuses de l'image. Bien qu'ils ne soient pas essentiels au gameplay, ils peuvent ajouter de l'ambiance et mettre en valeur l'art sur lequel l'équipe de développement a travaillé si dur.

La performance adaptative offre l'avantage d'inclure les effets de post-traitement du jeu dans toute leur gamme, mais réduit également les effets qui ne sont pas nécessaires dans les moments où l'appareil est le plus sollicité. Lorsque l'étranglement est en cours, nous désactivons des effets spécifiques sur le site Amazing Adventures of Dr. Bras qui ont été inclus principalement pour améliorer l'ambiance de la scène, sans avoir d'impact substantiel sur le gameplay. Le brouillard, l'efflorescence, la profondeur de champ, l'occlusion ambiante de l'espace-écran (SSAO) et le flou de mouvement sont d'excellents exemples d'effets visuels qui peuvent apporter beaucoup, mais qui ne sont pas nécessaires à la jouabilité. Ces ajustements permettent d'améliorer considérablement les performances du jeu.

Pas d'avertissement

Scène sur fond de forêt et de champs avec un personnage visant une cible à travers le brouillard

L'étranglement

Scène sur fond de forêt et de champs avec un personnage visant une cible

Physique adaptative

La physique adaptative modifie le temps delta fixe auquel le moteur physique se met à jour. Si vous l'utilisez pour d'autres systèmes, ceux-ci seront également mis à l'échelle. Mais si vous utilisez les temps delta fixes dans d'autres systèmes, vous voudrez peut-être créer votre propre échelle de physique pour utiliser des paramètres plus détaillés au lieu du temps delta fixe.

Voir la comparaison ci-dessus d'une valeur Time.fixedDeltaTime originale et d'une version réduite. La durée moyenne de l'image originale est de 28 ms et celle de la version réduite est de 21 ms.

Notre équipe Adaptive Performance travaille constamment à l'extension de la gamme et de la portée de sa plateforme, et nous sommes impatients de voir les nouveaux fournisseurs arriver dans le futur. Comme toujours, vos commentaires sont les bienvenus sur notre forum Adaptive Performance. N'hésitez pas à nous contacter !