nVidia a présenté il y a quelques jours Turin, sa nouvelle génération de circuits graphiques, qui s’annonce comme une petite révolution, qui pourrait bien avoir la même ampleur que l’arrivée du « Transform & Lightning » matériel (déjà par nVidia, en 1999 avec la toute première GeForce) ou que le lissage des textures (3Dfx avec la Voodoo en 1996). Ces nouvelles GeForce sont en effet les premiers circuits graphiques grand public à promettre le ray tracing en temps réel.
Le ray tracing est une technique de rendu d’image radicalement différente de la technique classique (rasterisation). Alors que la rasterisation se contente de découper la scène 3D en un empilement de plans plus ou moins éloignés et de déterminer pour chaque pixel de l’image quel est le premier plan contenant un élément, le ray tracing consiste à simuler les rayons lumineux qui arrivent à l’œil de l’observateur (en pratique, le principe du retour inverse de la lumière est appliqué, et le rendu est réalisé en tirant les rayons à partir du point d’observation, ce qui permet d’éliminer tous les rayons qui ne convergent pas vers ce point).
Cette technique permet un rendu beaucoup plus réaliste, en particulier pour les jeux de lumière et les reflets, au prix d’une complexité bien supérieure des calculs, tant pour le rendu final de la scène que pour sa composition 3D, puisqu’il n’est plus question par exemple de décider d’ignorer un objet parce qu’il n’est pas au premier plan (il pourrait en effet apparaître dans un reflet…).
Pour pouvoir effectuer du ray tracing en temps réel, nVidia a introduit dans l’architecture Turing de nouvelles unités de calcul, les cœurs RT, qui sont spécialisées dans le traitement de certaines opérations et structures de données liées au ray tracing : arbres quaternaires, hiérarchies volumétriques, tests de collisions… Mais ceci n’est pas suffisant pour obtenir les performances de traitement requises et, en pratique, le ray tracing n’est utilisé que partiellement, pour affiner les réflexions et les ombres au sein d’une image dont le gros du rendu est effectué par rasterisation.
Cette technique hybride a toutefois l’inconvénient de laisser des « trous » dans l’image, à cause d’un manque de données. Pour palier ce problème, nVidia ajouté à Turing un second type d’unités de calcul, les cœurs Tensor.
Si vous suivez un peu l’actualité du secteur de l’IA, ce terme n’est pas nouveau pour vous. Les tenseurs sont des outils mathématiques massivement utilisés dans l’apprentissage profond (deep learning), car ils permettent d’exécuter très rapidement des modèles déjà entrainés en simulant le comportement des neurones. Depuis quelques années déjà, on observe l’arrivée de circuits spécialisés dans les calculs de tenseurs (TPU, Tensor processing unit) pour le secteur de l’intelligence artificielle, qui a besoin de traitements très rapides, quitte à sacrifier les précision.
nVidia a donc mis à profit le deep learning sur de gros calculateurs pour mettre au point un modèle d’IA qui va remplir les trous dans le rendu en s’exécutant sur les cœurs Tensor des GeForce RTX, évitant ainsi de mobiliser les ressources des shaders.
Si les premières démonstration de jeux utilisant le ray tracing sont impressionnantes en terme de rendu de certains détail, il faudra toutefois sans doute encore beaucoup de temps avant que ces nouvelles techniques de rendu soient largement adoptées, les performances de cette première génération de cartes étant encore un peu faiblardes, limitant du coup la définition des rendus.
Pire, nVidia fait payer très cher cette nouveauté (de 640€ pour une RTX 2070 à près de 1300€ pour une RTX 2080), sur des cartes graphiques qui en dehors du ray tracing n’offrent pas beaucoup de nouveautés par rapport à la génération précédente, tout en n’étant pas non plus beaucoup plus rapides : sur le papier, le fillrate de la RTX 2080 est quasi identique à celui de la GTX 1080, tandis que la puissance de ses shaders n’augmente que d’une dizaine de pourcent. nVidia promet toutefois des performances jusqu’à doublées dans les jeux existants, grâce à un nouveau mode d’anti-aliasing, utilisant lui aussi une IA pour déterminer au mieux les éléments de l’image ayant besoin d’un lissage.
En attendant la démocratisation du ray tracing dans les jeux, les nouveaux GPU nVidia feront donc bien plus la joie des centres de calcul que celle des joueurs.