Qu'est-ce que le lancer de rayons ?

Depuis l'annonce par Nvidia en 2018 de ses cartes graphiques RTX de la série 20, sa fonction qui tue, le "ray tracing" est un terme populaire dans les cercles de jeux vidéo. Mais il peut être difficile de comprendre ce qu'est le lancer de rayons, comment il fonctionne et pourquoi il est meilleur que les techniques précédentes.

Qu'est-ce que le lancer de rayons et comment fonctionne-t-il ?

Dans le monde réel, lorsque vous voyez quelque chose, ce que vous voyez est un photon provenant d'une source lumineuse. Sur son chemin vers vous, ce photon peut avoir été réfléchi par une ou plusieurs surfaces. Chaque reflet modifie les caractéristiques de la lumière qui atteint vos yeux.

Le soleil émet une large gamme de couleurs de lumière, chaque surface absorbe une partie de la lumière et en réfléchit d'autres. Ce que nous voyons comme une surface verte, telle qu'une feuille, apparaît ainsi car elle reflète principalement la lumière verte. Si la lumière réfléchie par la feuille frappe une autre surface, comme un mur blanc, alors cette surface sera légèrement différente de ce qu'elle serait si c'était une lumière blanche pure qui l'éclairait. Chaque réflexion affecte chaque future surface avec laquelle la lumière interagit, modifiant son intensité et la couleur visible.

Le lancer de rayons est une technique graphique qui suit les mêmes principes. Des rayons de lumière sont projetés, les propriétés de la lumière réfléchie et réfractée, telles que la couleur, sont calculées et le rayon continue de se déplacer.

Dans le monde réel, chaque source lumineuse, comme une ampoule ou le Soleil, émet des photons dans toutes les directions, dont la grande majorité n'atteint jamais vos yeux. Simuler cela serait un processus incroyablement intensif qui produirait un résultat en grande partie gaspillé. Pour réduire la charge de travail, le lancer de rayons fonctionne à l'envers, projetant les rayons de la caméra. Chaque rayon est autorisé à parcourir une certaine distance sans réflexion ou réflexion un certain nombre de fois avant que les calculs ne soient effectués et que la valeur du pixel soit définie.

Par exemple, un rayon est projeté du point de vue du spectateur, lorsqu'il frappe un mur blanc, un algorithme génère récursivement un rayon réfléchi qui traverse ensuite une vitre bleue, enfin, le rayon réfléchi frappe une source de lumière blanche et est absorbé. Le verre bleu absorbe tout sauf la lumière bleue qui projette une lumière bleue sur le mur, ce qui fait que le pixel est coloré en bleu.

Pourquoi le lancer de rayons est-il tellement meilleur ?

La méthode standard de rendu des scènes en temps réel consiste à utiliser des lightmaps précalculées et l'éclairage de toute la scène. Certains jeux utilisent un éclairage volumétrique limité pour inclure des sources lumineuses mobiles et pour permettre des ombres dynamiques, cette technique est cependant utilisée avec parcimonie car elle est assez gourmande en processeur.

Le lancer de rayons peut obtenir un résultat photoréaliste si un travail supplémentaire est effectué au stade de la conception du jeu. Si toutes les surfaces incluent des détails tels que la réflectivité, la transparence et la façon dont la lumière se réfractera à travers elles, le résultat global peut sembler plus naturel. Si cette approche implique évidemment plus de travail au stade de la conception du jeu, elle permet au résultat d'apparaître photoréaliste avec la lumière réagissant comme elle le devrait lorsqu'elle se reflète sur le béton, le métal, le bois et le verre etc.

Le lancer de rayons permet de projeter des reflets et des ombres précis dans le cadre du processus de rendu. dans les méthodes de rendu traditionnelles, ces deux effets sont entièrement facultatifs et peuvent nuire considérablement aux performances.

Le lancer de rayons lui-même s'accompagne d'un énorme succès en termes de performances. Jusqu'à ce que les cartes graphiques RTX de Nvidia soient annoncées avec une accélération matérielle pour le lancer de rayons, on pensait que la puissance de traitement nécessaire pour effectuer le lancer de rayons en temps réel dans un logiciel était de plus d'une décennie une façon. Même avec l'accélération matérielle, le lancer de rayons entraîne toujours une diminution significative des performances car il s'agit toujours de la partie la plus lente du rendu d'une image.