au sommaire
Ray-casting
Alors que dans tout ce qui précède on voulait faire dessiner a la machine des objets 3d en les projetant via une lentillelentille sur l'écran 2d, dans le ray-casting on fait l'inverse. En effet, au lieu de projeter des objets sur un plan (l'écran) on lance des rayons de l'écran dans le monde 3d. On regarde alors si le rayon lance a percute ou non un objet situé sur une carte en deux dimensions - si c'est le cas on trace une ligne verticale dont la hauteur dépend de la distance par rapport à l'observateur, sinon rien ne s'affiche.
Cyrodil Storm Ninja. © P M M CC BY-NC 2.0
Pas de lentilles virtuelles, on balaye le monde sur une plage de 60 degrés et on affiche ce qu'il faut. Cette technique est plutôt rapide (puisque se base sur une carte en 2d) et a été très largement utilisée dans les jeux vidéosjeux vidéos a l'époque ou les cartes accélératrices de 3d n'existaient pas encore et ou la puissance des machines ne permettait pas l'affichage de la vrai 3d (Wolfenstein 3d, Doom, etc.)
Carte en 2d balayée par des rayons - technique du Ray-casting
Le résultat, une fois rendu avec une texture
Ray-tracing
Le ray-casting a un gros défaut - l'absence de récursivité, en effet impossible de représenter des objets éclairés, réfléchissants ou transparentstransparents. D'où l'amélioration - le Ray-tracing (en fait c'est plutôt l'inverse, les développeurs de jeux on simplifie le Ray-tracing pour utiliser cette technique sur des machines peu puissantes). Ici on lance toujours les rayons, sauf que lorsque celui-ci rencontre un objet il continue son chemin suivant les proprietes donnees a l'objet - il se refléte en partie, dévie s'il change de milieu et si l'objet est transparent. On approche, avec cette technique de très près la réalité. Certaines images obtenues avec le ray-tracing (ray-tracing probabiliste enrichi d'effets spéciaux) sont très impressionnantes et ressemblent à s'y méprendre à la réalité.
Une belle image qu'on doit à Steve Anger
Radiosité
Le Ray-tracing a malgré tout un problème, dont voici un exemple simple : imaginez une pièce plongée dans un noir feutré, cette chambre a une fenêtrefenêtre et une forte lumière est allumee dehors. Vous vous trouvez dans cette pièce et malgré le fait qu'une petite partie est éclairée par la lumière coulant de la fenêtre, vous distinguez tres bien tous les objets de la pièce... Avec le ray-tracing, vous ne veriez que ce qui est eclaire par le carre de lumiere venant de la fenetre.
Pourquoi ça ne marche pas ? Parce que le ray-tracing ne tient pas compte de la diffusion de la lumière entre les objets.
C'est ici que rentrent en jeux les algorithmes de radiosité. Ils permettent de tenir compte des effets comme celui considéré ci-dessus. Les algorithmes de radiosité sont aussi très gourmands en ressources. Ils utilisent des modèles thermiques concernant l'émission et la réflexion des radiations.
Ils considèrent le fait que l'énergie est conservée dans un environnement clos. On appelle radiosité le rythme auquel la lumière quitte une surface. Il est égal à la somme des quantités d'énergie émises vers ou reçue des autres surfaces et de l'énergie réfléchie par la surface par unité de temps. Les méthodes de radiosité tiennent compte de ce terme dans les modèles d'éclairement pour obtenir encore plus de réalismeréalisme.