Microsoft met en avant une technologie particulière sur sa future Xbox Series X, qui devrait permettre d’améliorer la fluidité en jeu tout en maintenant une définition 4K. Son nom : Variable Rate Shading. Probablement aussi utilisé chez Sony, le VRS est avant tout une question d’optimisation logicielle. Explications.
La nouvelle génération de consoles qui arrive à la fin de l’année amène son lot d’acronymes et de termes techniques plus ou moins obscurs, mais importants pour comprendre ce qui la différencie de la génération précédente. Continuons donc d’explorer les technologies de l’image qui définissent ses futures machines et penchons-nous sur le Variable Rate Shading, ou VRS. Moins sous le feu des projecteurs que le ray tracing, le VRS est pourtant primordial dans le cadre de l’optimisation des jeux. Car faire tourner Halo Infinite ou Godfall en Ultra HD et à 60 FPS va nécessairement demander quelques “astuces” de la part des développeurs. Le VRS en fait partie.
Pour le moment confirmé sur la Xbox Series X, le VRS a cependant des chances d’être également présent sur PlayStation 5, étant donné que les deux consoles sont basées sur la même architecture RDNA 2 de chez AMD, qui va utiliser cette technologie de rendu. Microsoft utilise cependant sa propre “version” du VRS, intégré à DirectX 12. Par ailleurs, rappelons que le VRS n’est pas une nouveauté, puisqu'il est déjà utilisé chez Nvidia depuis quelque temps, sous le nom d'Adaptative Shading. Le premier à en tirer parti était Wolfenstein II : The New Colossus
"Couvrez ce shader que je ne saurais voir"
Mais trêve de blabla, il est temps de rentrer dans le vif du sujet : en quoi consiste le Variable Rate Shading ? En quelques mots, on pourrait le définir comme une optimisation des calculs nécessaires à l’affichage d’une image en 3D, en fonction de la complexité de cette dernière.
Rentrons dans le détail : chaque pixel affiché à l’écran nécessite un shader, qui va lui donner sa forme, sa transparence, sa lumière, etc. Dans le cadre d’un affichage en Ultra HD, soit 3840 x 2160 pixels, la quantité de shaders à calculer en simultané est énorme, le nombre de pixels affichés à l’écran atteignant presque 8,3 millions. L’astuce du VRS, c’est de considérer que ces 8,3 millions de pixels ne nécessitent pas forcément le même niveau de rendu : ils peuvent être peu visibles, car dans la pénombre ou à la périphérie du regard du joueur (c’est aussi ce que l’on appelle le rendu fovéal pour la réalité virtuelle). Dans le cadre de mouvements très rapides (par exemple dans un FPS), c’est la même chose : pourquoi réquisitionner de la puissance pour calculer précisément un pixel qui sera flou ?
Une image particulièrement parlante est celle-ci dessous : dans Blair Witch de Bloober Team, nous passons une bonne partie du jeu dans la pénombre quasi totale. Dans ce cas là, est-il nécessaire de calculer le rendu de la forêt qui se trouve dans le noir et donc invisible aux yeux du joueur ? Le Variable Rate Shading trouve ici tout son intérêt, puisqu’il va adapter en temps réel le calcul de chaque shader en fonction de ce qui est éclairé. Dans le cadre de Blair Witch et de notre image exemple, près de la moitié de la “vue” du joueur est plongé dans le noir, ce qui représente autant de calculs en moins à effectuer pour la carte graphique.
Autre exemple, issu de la documentation de chez Nvidia : sur un jeu de course automobile comme Forza Horizon 4 , il n’est pas nécessaire d’appliquer le même niveau de shader sur l’ensemble de l’image. Ici, seuls la voiture, l’horizon et le ciel sont calculés avec un niveau de détails “à 100 %”, puisque c’est sur cette zone que le regard du joueur va se concentrer pendant la conduite. Dans la zone colorée en vert, un seul shader va s’appliquer pour 4 pixels, et même pour 16 pixels dans la partie rouge, peu observée en jeu.
Bien entendu, tout n’est pas “noir ou blanc” et le VRS doit s’adapter constamment à ce qui est affiché à l’écran. Si nous prenons l’exemple de l’Adaptative Shading chez Nvidia, la technique est utilisée de plusieurs façons différentes et reprend les trois préceptes énoncés plus haut : selon la luminosité de la zone à calculer, la complexité de la texture, sa position par rapport au regard du joueur et la vitesse de mouvement qui entraine l’effet de flou (le fameux “motion blur”). Tout cela se combine pour donner un VRS “personnalisé”, qui permet d’économiser de précieuses ressources de calcul. Selon des tests réalisés par Tom’s Hardware sur Wolfenstein II, l’utilisation du VRS permet de gagner entre 5 et 15% de FPS supplémentaire en jeu. Cela peut sembler faible, mais c’est ce qui peut faire la différence pour parvenir à dépasser les 60 FPS en Ultra HD tant espéré sur les prochaines consoles.
Le VRS que Microsoft compte utiliser dans la Xbox Series X vient quant à lui du PC et fait partie de l’API DirectX 12. Présenté initialement en mars 2019 , il permet en théorie de gagner jusqu’à 20% de performances en plus, avec une perte visuelle quasi invisible. La compagnie donne d'ailleurs un exemple avec Civilization VI (ci-dessous) : seules les zones en rouge profitent d'un shader "complet". Si une toute petite poignée de jeux utilisent aujourd’hui cette technologie, plusieurs éditeurs et développeurs comptent l’utiliser pour leurs prochaines productions. Parmi eux Ubisoft, Turn 10, Playground Games, 343 Industries ou encore Epic Games.
Avec le ray tracing ou encore le SSD, le Variable Rate Shading fait partie des points importants à analyser quand la Xbox Series X et la PlayStation 5 sortiront. Si la seconde n’utilise pas encore officiellement cette technique, sa présence sur l’architecture RDNA 2 d’AMD - qui sera sur les deux consoles - laisse fortement supposer que le VRS sera dans votre TV, quelle que soit la machine qui trônera sous votre salon d’ici quelques mois. Le Variable Rate Shading est en tout cas une preuve de plus que la next-gen sera tout autant une question d’optimisation que de performances brutes.
A LIRE : Ray tracing : qu'est ce que c'est et comment ça marche ?