Mesh shaders : explication sur cette technologie graphique au fort potentiel

De la beauté, mais aussi de la fluidité

Les mesh shaders, qu’est-ce que c’est, à quoi ça sert et en quoi ça impacte les gamers ?

Depuis leur début, les jeux vidéo ont graphiquement progressé, passant d’un Pong aussi culte que basique à une Night City chamarrée et presque photo-réaliste (avec le mode Overdrive). Contrairement aux idées souvent reçues, il ne s’agit pas simplement d’avoir une grosse carte graphique et un moteur graphique dont la première ligne est <get: [nice_graphics_please] ;

La partie software est au moins aussi compliquée que la partie hardware, les résultats que nous connaissons nécessitant des années de travail. Dans ce cas précis, il est important de comprendre que les images 3D si chères à nos yeux sont un assemblage titanesque de triangles qui sont bougés selon des directives précises, et ornés de jolies textures grâce aux pixels. L’application graphique qui gère tout ça, Direct3D, recourt à un code assez complexe appelé vertex shaders. Cette technologie est largement maîtrisée, et permet d’afficher suffisamment de triangles pour la plupart des jeux ; les développeurs couplent les vertex shaders avec de nombreux pixels shaders, permettant le rendu moderne aux jeux que nous aimons tant. Des limitations existent cependant, les expressions faciales et les animations complexes représentant les plus gros défis.

Mais si la technologie des vertex shaders nous permet d’avoir de si jolis jeux, elle les handicape aussi : la manière dont sont gérés les triangles empêche les développeurs d’en utiliser toujours plus, et ce de manière complexe. A l’heure actuelle, la technique dite de culling consiste à faire disparaître les éléments inutiles d’une scène… mais après qu’ils aient été modélisés. Vous l’aurez compris, ces calculs complexes inutiles demandent autant de temps que d’énergie, du côté matériel comme du côté développeur.

En 2018, Nvidia a entamé la promotion du mesh shading pour ses génération de cartes graphiques Turing, avec la vidéo ci-dessous ; en 2019, Microsoft a rendu cette réalité plus proche en intégrant cette technologie peu démocratisée à Direct3D, dans l’indémodable DirectX 12 (version Ultimate). C’est donc le début d’une grande aventure…

 

 

 

… mais pas tant que ça, en fait.

L’adoption de cette technologie, comme n’importe quelle autre, dépend largement des fabricants de consoles. Si la puce graphique de la PlayStation 5 (console la plus populaire) peut théoriquement gérer le mesh shading, l’API utilisée est celle de Sony, rendant son accession par des développeurs tiers beaucoup plus délicate.

Le problème principal est tout simplement que la plupart des moteurs graphiques ne sont pas (encore) conçus pour communiquer avec les mesh shaders, et que si un tel changement est possible, il est extrêmement coûteux. Une lueur d’espoir se fait néanmoins avec le bien connu Unreal Engine 5, dont la fonctionnalité Nanite communique directement avec les mesh shaders ; mais encore en 2024, les jeux utilisant la dernière version du moteur d’Epic ne sont pas nombreux, il faudra donc attendre encore un peu avec de voir la théorie rejoindre la pratique.

A l’heure actuelle, seul Alan Wake 2 tire parti de la technologie des mesh shaders, et il ne fait aucun doute que le dernier jeu de Remedy mêle aussi bien fluidité que graphismes époustouflants. Avec la popularisation des jeux utilisant l’Unreal Engine 5, nous assisterons ainsi à une multiplication des triangles mais aussi à leur meilleure gestion. Bien entendu, il faudra des cartes graphiques toujours plus puissantes pour s’assurer d’un réel confort de jeu, mais c’est là une tout autre histoire…

 

 

 

Rédacteur en chef de ce p'tit site bien sympatoche ! Amateur de jeux stylés, point bonus s'il y a une histoire riche et/ou des blagues de gamin. Dispo sur Twitter : @RealMimil

Laisser un commentaire