La complexe architecture Turing des GeForce RTX de Nvidia permet à ce dernier de déployer tout un panel de nouvelles technologies de rendu pour nos jeux. Bien entendu, le ray tracing en temps réel est celui qui a le plus impressionné lors de l’annonce, puisqu’il représente à lui seul une sorte de « Graal » dans le monde de la 3D.
En outre, grâce aux Tensor Core – les unités de calcul héritées du monde de l’intelligence artificielle – présentes dans la puce, Nvidia espère encourager les développeurs à utiliser de nouvelles façons de magnifier encore leurs créations. Sans oublier qu’il compte sur toutes les améliorations élaborées autour des manières plus classiques de créer des scènes et/ou des éléments 3D au sein de ces dernières (shading, rasterisation, tesselation) pour offrir une large palette d’outils, toujours plus complète. Même le monde de la VR n’est pas « épargné » et continue d’occuper une partie des pensées de Nvidia, bien qu’il ait beaucoup de mal à se faire une place dans le grand public.
Turing : le ray tracing temps réel et hybride
Le ray tracing (RT) pur et dur est très demandeur en ressources matérielles et ce sont les RT Core des nouvelles RTX qui sont mis à contribution. Lorsqu’il s’agit d’afficher une image statique ou faiblement animée, il y a fort à parier que les RTX soient capables de procéder à la génération des jeux de lumière en temps réel. Mais dans les jeux, où tout va très vite, c’est déjà beaucoup plus complexe. Ainsi, à la lecture des documents techniques fournis par Nvidia, on s’aperçoit que tout prend une dimension plus « hybride ».
Nvidia a imaginé une méthode de rendu basée sur les techniques traditionnelles (rasterisation, tesselation) combinée à celle du RT. Ainsi est né le « Hybrid Rendering ». En clair, on calcule d’abord une scène classiquement et on y génère les ombres et les lumières comme avant.
Puis, en bout de chaîne, on fait appel aux RT Cores, qui vont accélérer matériellement la projection des rayons lumineux dans l’image, à des endroits clés, pour que les ombres et les lumières puissent être affinées, améliorées, et donnent à l’image un caractère réaliste sans pour autant mettre la carte graphique à genoux. Parmi tous les domaines ou types de rendu dans lesquels le RT peut être utilisé, on pourrait citer : les réflexions et réfractions de la lumière, les ombres et l’occlusion ambiante, les illuminations globales ou encore les déformations liées à des collisions.
Pour que le gamer puisse évaluer les différences de performances en matière de rendu Ray Tracing entre les différentes cartes, Nvidia introduit la notion de Rays Cast. C’est une vitesse qui s’exprime en Giga Rays/seconde et indique la puissance brute de calcul RT de la carte.
Ainsi, par exemple, la GTX 2080 Ti est capable de développer une puissance de 10 Giga Rays par seconde alors que la GeForce GTX 1080 Ti se cantonne à 1,1 GR/s. Et pour cause, celle-ci n’a pas d’unités matérielles dédiées au Ray Tracing et ne peut générer ce type de rendu qu’au travers une émulation logicielle.
Le Deep Learning Super Sampling (DLSS), l’AA à la sauce IA
Le DLSS est la première application concrète des Tensor Core au service du jeu vidéo. Il s’agit, là aussi, d’une technique de rendu, qui trouve son origine dans le deep learning… comme son nom l’indique. Pour faire simple, la promesse du DLSS est la suivante : vous permettre d’avoir un rendu graphique de type antialiasing encore plus beau, plus net, plus en relief qu’avec un traitement de type antialiasing Temporel (TAA) tout en profitant d’un accroissement du nombre d’images par seconde affichées. En clair, grâce à l’IA, Nvidia nous promet le beurre et l’argent du beurre.
Comment ça marche ? Assez simplement. Le développeur du jeu soumet une version d’un jeu à un réseau neuronal, hébergé sur des supercalculateurs Nvidia. Le dit-réseau va « y jouer », dans différentes définitions d’image, avec plus ou moins de traitement sur les textures (jusqu’à 64x Super Sampling), pendant des heures, des jours, des semaines. Cela va lui permettre d’élaborer des images de très grande définition, de déduire des enchaînements logiques entre plusieurs séquences et intégrer la position logique de certains pixels par rapport à d’autres.
Tout le fruit de son apprentissage va être ensuite compilé dans un profil que Nvidia va donner aux développeurs afin que ceux-ci l’implantent dans leur titre pour être ensuite activé par le joueur. Sur un titre déjà sorti, le concepteur des GeForce assure qu’il serait possible de l’envoyer aux joueurs par l’intermédiaire des pilotes et de l’activer une fois que le développeur aurait, de son côté, déployé un petit patch donnant accès à la fonctionnalité.
Vous l’aurez deviné, comme le profil recèle une quantité d’informations exploitables tout de suite par les Tensor Core, les CUDA Core – eux – vont donc être beaucoup moins occupés. Ils peuvent donc se concentrer sur les calculs restants et ainsi, par extension, générer davantage d’images par seconde à l’écran.
C’est en se basant sur l’utilisation du DLSS par les nouvelles cartes que Nvidia a pu affirmer au lancement des RTX que, dans certains cas, celles-ci étaient jusqu’à deux fois plus puissantes que leurs homologues d’ancienne génération.
Nvidia envisage enfin d’utiliser les Tensor Core dans différents domaines. Le concepteur aimerait, par exemple, que les développeurs puissent se servir de leur potentiel pour que, par exemple, un ennemi puisse adapter son comportement vis-à-vis de celui des joueurs. Imaginez qu’un boss de votre MMORPG favori puisse développer la faculté de changer le cycle de ses attaques en fonction de votre style de jeu : voilà qui aurait de quoi pimenter un peu vos soirées de raid ! Nvidia évoque aussi la possibilité d’employer les Tensor Core pour détecter des tricheurs ou encore d’interpréter des ordres vocaux dans les jeux.
De nouvelles techniques de rendu des shaders
Première nouvelle technologie graphique mise en avant par Nvidia pour le lancement des cartes Turing, celle du Mesh Shading. Elle regroupe plusieurs techniques qui servent toutes à améliorer le calcul, la modélisation et la génération des formes géométriques et des shaders dans les jeux qui en tireront parti. Là encore, c’est un outil à la disposition des développeurs, libre à eux de l’utiliser ou non.
Application concrète du Mesh Shading, l’affichage de la scène ci-dessous.
Il y a beaucoup d’astéroïdes, d’éléments 3D, tous situés à des plans différents. En fonction des mouvements du vaisseau, le niveau de détails à la surface des pierres va varier pour donner une impression de réalisme poussée. Grâce au Mesh Shading, le développeur a pu lister tous les éléments similaires ainsi que les différents niveaux de détails à leur appliquer suivant la proximité du vaisseau. Des listes qui ont été directement soumises et traitées en batterie par la carte graphique et non pas élément par élément par le processeur de l’ordinateur puis envoyé au GPU comme c’est le cas aujourd’hui, dans un processus de création « classique ». Le but de la manoeuvre ? Gagner du temps, éviter des embouteillages dans les tuyaux et surtout faire appel à la très grosse puissance de calcul des RTX.
Bien entendu, pour parvenir à ce résultat, Nvidia a procédé à une réorganisation du processus en introduisant deux étapes de traitement dans la chaîne de génération des triangles et autres shaders : le Mesh Shader et le Task Shader. Elles sont effectuées en parallèle par les unités de la carte mais ne s’ajoutent pas à l’actuelle chaîne de création, elles se substituent ou combinent des étapes, comme le montre le graphique ci-dessus.
Autre technique à l’honneur, le Variable Rate Shading (VRS). Il s’agit ici de découper l’image d’un jeu en portions de 16×16 pixels et de les passer à la moulinette de plusieurs algorithmes pour, par exemple, allouer plus ou moins de puissance graphique à la génération des shaders par région et donc à la coloration des pixels (Content Adaptive Shading).
Il devient aussi possible de faire varier la complexité des shaders (ou leur définition) sur les objets en mouvement (Motion Adaptive Shading). Ou encore de réduire complètement leur nombre sur tout ce que le joueur perçoit grâce à sa vision périphérique (Foveated Rendering). A noter, il est possible de cumuler le Content Adaptative Shading et le Motion Adaptive Shading (le Foveated Rendering sera, lui, plus réservé à la VR).
Par exemple, dans un jeu de course de voitures, un développeur pourra tout à fait faire en sorte que la carte mette le paquet sur tout ce que le joueur voit en premier et à l’arrière plan, comme le véhicule, la route et les éléments de décor situé dans son champ de vision. En revanche, pour tous les autres éléments, moins visibles, comme le compteur ou les morceaux de bitumes latéraux, inutile de mobiliser trop de ressources.
Le créateur de jeu peut donc faire en sorte que la carte ne calcule pas tous les shaders et donc ne colorise qu’un pixel sur deux par exemple. Ou qu’un groupe de pixels sur quatre, etc. Les algorithmes se chargent ensuite de lisser le rendu, en temps réel, tout en intensifiant les couleurs afin de coloriser par rayonnement les pixels qui ne le sont pas normalement. Cela n’est pas sans rappeler les techniques de rendu 4K de la PlayStation 4 Pro ou encore de la Xbox One X (Checkerboard Rendering et/ou Super Sampling).
Comme le montre le visuel ci-dessus, le développeur n’est pas obligé d’appliquer un traitement par grosses zones. Il peut tout à fait cibler et mélanger les différents niveaux de traitement et les appliquer où il le souhaite à l’image. Dans le feu de l’action, à l’oeil nu, il est presque impossible de faire la différence entre une image dont tous les shaders et les pixels ont été générés à l’échelle 1×1 et ceux traités grâce au VRS.
Toutefois, en se concentrant bien sur l’image « Content adaptive » et en la comparant à l’« Original » en ciblant les deux zones rouges massives visibles sur le « Shading rate visualization », on peut déceler un très léger manque d’ombre sur la porte. Certains détails de la trappe sont manquants. Des différences de l’ordre du détail mais qui illustrent bien comment fonctionne le VRS.
Vient enfin le Texture Space Shading ou TSS. Le principe de fonctionnement est là aussi assez simple. Il s’agit pour le développeur de pouvoir faire en sorte que certaines textures et shaders utilisés de façon récurrente pour le rendu soient gardés en mémoire et puissent être rapidement « rappelés » d’une image à l’autre.
De fait, la puissance qui aurait dû servir à les recalculer peut être allouée à la génération d’autres éléments. Il est même possible de faire varier la définition des textures ainsi conservées de sorte que si le point de vue ou la distance change, la carte n’est qu’un ajustement à la hausse ou à la baisse à faire et puisse, là encore, s’abstenir de tout recalculer. Le TSS sera particulièrement utile pour les applications et jeux VR où la carte doit calculer deux images en simultanée (une pour chaque oeil).
Nous voici arrivés au terme de notre présentation technologique des possibilités offertes par la puissance de Turing, la nouvelle puce graphique présente sur les cartes GeForce RTX 2070, 2080 et 2080 Ti. Prochaine étape, et non des moindres, les tests. Stay tuned !
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.