Rapport de développement sur console - n°2

Nous allons parler du temps de calcul du processeur graphique et des divers facteurs permettant de le réduire.

Bonjour à tous,

Bienvenue dans le deuxième épisode de notre rapport de développement sur console !

Pour ceux qui auraient raté le premier, dans lequel nous avons évoqué le spectre de vision et la façon dont il affecte les performances du jeu, vous le trouverez ici.

Aujourd’hui, nous allons parler du temps de calcul du processeur graphique et des divers facteurs permettant de le réduire.

Qu’est-ce que le temps de calcul du processeur graphique ?

Comme son nom l’indique, il s’agit du temps dont le processeur graphique a besoin pour calculer une image. Et, vous vous en doutez, plus il y a d’images à calculer, plus ce délai est rallongé. Le temps de calcul du processeur graphique contribue directement au nombre d’images par seconde dont vous disposez en jouant et, s’il augmente, cela risque d’avoir un impact sur les performances. De nombreux facteurs affectent le temps de calcul du processeur graphique, y compris le délai qu’il lui faut pour effectuer le rendu de tous les éléments visuels que vous voyez à l’écran.

Le processeur graphique, ou GPU, se charge des graphismes de l’ordinateur. À chaque image, il dessine des millions de pixels à l’écran, et il reproduit cette opération un grand nombre de fois par seconde. Le nombre de pixels affichés à l’écran dépend de la résolution choisie. Plus cette dernière est élevée, plus l’image comprend de pixels et de détails, ce qui demande une puissance de calcul plus importante.

Par exemple, si l’on compare une résolution 4K à la 1080p, qui est plus souvent utilisée, la 4K affiche quatre fois plus de pixels que la 1080p. Cela signifie que le processeur graphique doit traiter quatre fois plus de données, ce qui augmente tout naturellement son temps de calcul.

Résolution dynamique

Remarque : l’option de résolution dynamique est actuellement en cours d’optimisation. Elle sera mise à votre disposition sur PS4 et Xbox One dans une mise à jour future.

La résolution dynamique est une fonctionnalité grâce à laquelle la résolution change de façon dynamique en fonction du nombre de calculs que le processeur graphique doit effectuer. Elle passe la résolution de 1440p à 4K en temps réel, avec un taux de rafraîchissement variable. En pleine partie, lorsque votre processeur graphique doit multiplier les calculs, il aura, grâce à cette fonctionnalité, la possibilité de réduire temporairement la résolution afin de vous garantir des performances stables.

Nous aimerions vous montrer comment la résolution dynamique affecte le temps de calcul du processeur graphique grâce au diagramme ci-dessous. Attention toutefois : celui-ci n’indique pas le nombre d’images par seconde, il mesure le temps de calcul du processeur graphique en millisecondes. Autrement dit, plus la valeur est faible, mieux c’est.

 

1.png.99c2e383ba937a9b94306e06a9326439.png

* Les temps de calcul du processeur graphique montrés sur ce graphique ont été obtenus à l’aide d’une Xbox One X.

On observe une amélioration de 20 % du temps de calcul du processeur graphique lorsque la résolution dynamique est activée. Cela signifie que le processeur graphique peut calculer chaque image plus rapidement, ce qui améliore les performances et la stabilité !

Réduction du nombre d’instances du processeur graphique

Cette option a été ajoutée au jeu depuis la version 1.0 pour Xbox One X et PS4 Pro, et nous lui avons depuis apporté de nombreuses retouches afin d’améliorer les performances. Nous continuerons de l’optimiser à l’avenir, y compris lors de la prochaine mise à jour prévue pour le serveur de jeu. Vous en saurez davantage sur les changements à venir en poursuivant votre lecture.

Sachez toutefois que les améliorations à venir pour la réduction du nombre d’instances du processeur graphique sont actuellement en cours d’optimisation pour les PS4 et les Xbox One de première génération ainsi que pour les Xbox One S, et qu’elles seront implémentées à date ultérieure.

Il y a de nombreuses forêts denses sur Erangel, Sanhok et Vikendi. Afin d’obtenir les meilleures performances possibles, le moteur graphique reproduit de nombreuses « instances » d’un même arbre. Cela réduit les ressources nécessaires pour effectuer le rendu des arbres, ce qui permet au processeur graphique d’afficher la forêt ci-dessous sans qu’il soit nécessaire d’envoyer d’autres demandes de rendu, gourmandes en ressources.

2.png.5d1940fb07cc69ef968ca4585320e8c0.png

Quand on réduit le nombre de demandes en instanciant autant d’arbres que possible dans le champ de vision, les ressources nécessaires pour afficher tous les arbres sont moins importantes, ce qui améliore les performances.

Mais que se passe-t-il si l’on utilise une lunette de visée ? Faisons l’essai avec une lunette 8x.

3.png.5ed9301b49a6ebbd8124645ea7452542.png

Le niveau de détail joue un rôle important pour atteindre les performances souhaitées, le rendu des objets s’effectuant à un niveau de qualité différent en fonction de leur distance par rapport au joueur. En situation normale (autrement dit, quand on n’utilise pas une lunette de visée), seuls les arbres les plus proches de la première instance sont dessinés avec un niveau de détail de 0 (le plus élevé possible). Quand on se sert d’une lunette de visée, toutes les instances des arbres vus à l’aide de la lunette sont dessinées avec un niveau de détail de 0, ce qui augmente grandement le temps de calcul du processeur graphique (et les performances sont réduites en conséquence).

Lorsque vous utilisez une lunette de visée, la distance à laquelle vous y voyez est rallongée, ce qui permet de voir les arbres lointains en détail. Pour reprendre le schéma ci-dessus, vous ne verrez qu’un nombre d’arbres limité dans la lunette (probablement entre trois et sept), mais le processeur graphique cherchera tout de même à dessiner chaque instance d’arbre faisant partie de votre spectre de vision. Dans ce cas, utiliser les instances devient un sérieux handicap, le processeur ayant besoin de nombreuses ressources pour dessiner des arbres inutiles. À l’inverse, si on n’utilise pas les instances, il ne dessinera que les trois à sept arbres vus dans la lunette.

Le niveau de détail des objets est déterminé en fonction de leur taille à l’écran, et la distance de suppression détermine si l’objet doit être rendu ou non, en fonction de la distance le séparant du joueur.

Grâce aux optimisations prévues pour la réduction du nombre d’instances du processeur graphique, nous avons l’intention d’améliorer les performances en évitant les calculs de rendu trop détaillé pour les objets n’apparaissant pas à l’écran, et en développant un procédé plus intelligent afin de mieux déterminer quels objets doivent être traités en cas d’instanciation, et dans quel ordre. Comme le processeur graphique connaît le niveau de détail de chaque objet, seuls les modèles à faible niveau de détail seront choisis pour être instanciés après examen de toutes les instances. À partir de cet instant, le processus de rendu s’effectuera, en commençant par les instances les plus éloignées du joueur. C’est ce processus de sélection et de traitement que l’on appelle réduction du nombre d’instances du processeur graphique.

Le graphique ci-dessous compare les temps de calcul du processeur graphique quand la réduction du nombre d’instances du processeur graphique est activée ou désactivée avec une résolution 4K.

 

4.png.47d90fbefa63a7721115176e2dea4767.png

* Temps de calcul du processeur graphique mesurés en utilisant une lunette de visée 8x.
* Les temps de calcul du processeur graphique montrés sur ce graphique ont été obtenus à l’aide d’une Xbox One X.

On constate un résultat plus stable et une amélioration de l’ordre de 30 % pour ce qui est des temps de calcul du processeur graphique lorsque la réduction du nombre d’instances du processeur graphique est activée. Quand elle est désactivée, on voit bien que les temps de calcul du processeur graphique sont plus importants et qu’ils fluctuent de manière considérable.

Nous espérons que ce post vous a plu, et nous vous donnons rendez-vous dans deux semaines !

Merci,
Votre équipe PUBG PS4.

Discuss this article
Share this article