Le raytracing peut-il supplanter la rastérisation ?

1 : Introduction 3 : Les avantages du raytracing 4 : Les autres avantage 5 : Le raytracing : mythes… 6 : Un algorithme simple ? 7 : Les limites 8 : Un moteur de rendu hybride ? 9 : Conclusion

Les concepts de base

L’idée de base du raytracing est extrêmement simple, elle peut se résumer en quelques mots : pour chaque pixel de l’écran le moteur de rendu lance un rayon qui se propage en ligne droite jusqu’à l’intersection avec un élément de la scène à rendre. Cette première intersection permet de déterminer la couleur du pixel en fonction du matériau de l’élément intersecté mais ce n’est pas suffisant pour obtenir un rendu réaliste. Pour cela il faut aussi déterminer l’éclairage de ce pixel, là encore cela se fait en lançant des rayons, appelés rayons secondaires par opposition aux rayons primaires qui permettent de déterminer la visibilité des différents objets de la scène.

Pour calculer l’éclairage de la scène des rayons secondaires sont lancées vers les différentes sources lumineuses. Si ces rayons sont bloquées par un objet alors l’élément est dans l’ombre pour la source de lumière considérée, sinon celle-ci a une influence sur l’éclairage de l’élément. La somme de tous les rayons secondaires ayant atteints une source lumineuse permet de déterminer la quantité de lumière éclairant notre élément.

Mais là encore ce n’est pas tout, pour obtenir un rendu encore plus réaliste il faut aussi considérer les indices de réflexion et de réfraction du matériau, ou dans d’autres termes quelle quantité de lumière est réfléchie au point d’impact avec le rayon primaire et quelle quantité de lumière passe au travers. Là encore des rayons sont lancés pour déterminer la couleur finale du pixel.

On distingue donc plusieurs types de rayons : les rayons primaires qui permettent de déterminer la visibilité, un peu à l’image du ZBuffer dans le cas de la rastérisation et les rayons secondaires qui sont de trois types différents :

  • les rayons d’ombre
  • les rayons de réflexion
  • les rayons de réfraction

On doit cet algorithme a un chercheur du nom de Turner Whitted qui l’a inventé il y a maintenant 30 ans. Jusqu’alors les raytracers de l’époque se contentaient uniquement des rayons primaires, les améliorations apportées par Whitted ont donc permis de faire un grand pas vers le réalisme des scènes rendues.

Si vous avez des notions de physique vous n’aurez pas manqué de remarquer que la façon dont le raytracing fonctionne est exactement l’inverse de la façon dont les choses se passent dans le monde réel. En effet, contrairement à une croyance largement répandue au Moyen-âge, nos yeux ne lancent pas de rayons, ils reçoivent les rayons lumineux des sources lumineuses qui ont été détournés par les divers éléments qui nous entourent. Le premier algorithme de raytracing fonctionnait ainsi, mais le principal inconvénient de cette technique est qu’elle était extrêmement coûteuse : pour chaque source lumineuse il fallait lancer des milliers de rayon dont beaucoup n’avaient aucune influence sur la scène générée (ils n’intersectaient pas le plan de l’image). Les algorithmes de raytracing actuels sont donc une optimisation de l’algorithme de base, on parle de Backward raytracing c’est à dire Lancer de Rayons à l’envers, vu que les rayons se propagent en sens inverse par rapport à la réalité.

Sommaire :

  1. Introduction
  2. Les concepts de base
  3. Les avantages du raytracing
  4. Les autres avantage
  5. Le raytracing : mythes…
  6. Un algorithme simple ?
  7. Les limites
  8. Un moteur de rendu hybride ?
  9. Conclusion