Lors du SIGGRAPH 2020, Nvidia a montré l'avancée de ses travaux sur le Raytracing, en collaboration avec le Visual Computing Lab du Dartmouth College. Comme vous le savez, le Raytracing emploie une méthode d'affichage des rayons opposée à celle de la rastérisation prenant ainsi la caméra comme point initial d'observation. Les calculs demandés sont alloués au trajet des rayons lumineux, et leurs interactions avec la matière, en obéissant aux lois optiques/physiques : nombre de rayons lancés, complexité de la scène en objets, réfraction de la lumière en fonction de la nature des surfaces (matière, eau, sol, etc), arrêt des rayons générant l'ombre. Pour garder une qualité de l'image, tout en assurant un rendu temps réel exploitable, Nvidia utilise des filtres de débruitage a.k.a denoising, puisque du bruit est généré dans le calcul de la scène.

 

Ces derniers sont colossaux, et sont accélérés en partie chez Nvidia par les RT Cores.  Pour diminuer le volume de calculs, le caméléon utilise la méthode BVH, acronyme de Bounding Volume, c'est ce dernier qui est pris en charge par les RT Cores. En gros, elle consiste à découper la scène en boites, le filtre se chargeant de précalculer si le rayon incident interagira ou pas avec cette boite, auquel cas le filtre se chargera de découper cette boite en plusieurs petites boites, etc, jusqu'à ce que le calcul soit complètement défini. Tout ça prend de la ressource, mais vous voyez bien qu'une des limites actuelles reste la gestion du nombre de sources lumineuses. Tout ceci est expliqué dans notre article sur Minecraft que vous pouvez retrouver dans le lien ci-dessous.

 

 

Qu’adviendra-t-il s'il y a des milliers de sources lumineuses, considérant un reflet comme une source ? Quels rayons vont interagir avec la matière, et comment la source adjacente va modifier l'éclairage ? C'est le sens des travaux menés, et les verts sont satisfaits de montrer qu'ils ont mis au point un filtre de débruitage capable d'afficher une scène raie tracée avec des millions de sources lumineuses dynamiques. Ce filtre se nomme ReSTIR, acronyme de Reservoir based SpatioTemporal Importance Resampling. Tout ça semble bien fonctionner, puisqu'il y a 8 rayons par pixel, ce qui enrichit la scène de 3.4 millions de triangles avec un rendu exécuté sous les 50ms. L'efficacité de cette méthode serait, selon les dires des développeurs, 35 à 65 fois supérieure, pour un même coût énergétique.

 

C'est un des axes d'amélioration du Raytracing pour les années à venir. Pour l'instant, la limite se situe sur le nombre de rayons et la complexité modérée de la scène. Dans quelque temps, il y aura plus de rayons, de meilleures interactions (par exemple plusieurs rebonds du rayon incident), et des milliers de sources de lumière. Même en augmentant les unités de calcul dédiées à l'accélération des calculs du RT, il faudra un filtre de débruitage plus puissant qui n'impactera pas le temps de rendu, au contraire, tout en étant plus permissif. Il y a plusieurs méthodes de rendu Raytracing, la différence avec les PC et les consoles proviendra de l'évolution des GPU futurs à traiter du RT de plus en plus complexe : ça passe aussi, et surtout, par un filtre super efficace, un algorithme de tueur. Imaginez ce qu'un tel filtre peut donner sur Ampere ! En attendant, voilà les premiers pas du ReSTIR en vidéo !

 

 Le Raytracing a enfin réussi son entrée dans le monde du jeu vidéo, où le temps réel est autrement plus compliqué que dans le cinéma ! 

Sur le comptoir, au même sujet

 
 

afficher plus de prixAffichez donc moi tout, nom de nom

Plus d'infos avec le comptoir de l'info

Voir plus de news
Les 10 Ragots
   
Les ragots sont actuellement
ouverts à tous, c'est open bar !