Le raytracing peut-il supplanter la rastérisation ?

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 ?

Conclusion

Comme nous venons de le détailler ci-dessus, il reste encore beaucoup de challenges à relever avant de voir le raytracing devenir une alternative crédible à la rastérisation dans le rendu temps réel. Et à bien y réfléchir : est ce vraiment souhaitable ? Les avantages du raytracing ne sont finalement pas assez révolutionnaires pour justifier l’impact de son coût sur les performances. Les points forts de cet algorithme tournent essentiellement autour des réflexions et des transparences, ce sont les deux effets qui sont le plus difficiles à rendre avec l’algorithme de rastérisation actuel mais au final ce n’est pas un si grand inconvénient qu’on pourrait le penser. Le monde qui nous entoure n’est pas vraiment constitué d’objets très brillants ou transparents, de ce fait notre œil est facilement abusé par de grossières approximations.

Il suffit de regarder les simulations de course automobiles récentes comme Gran Turismo ou Forza pour se rendre compte qu’en dépit des réflexions totalement fausses sur les carrosseries, le rendu global est des plus satisfaisant.  Ce n’est pas une réflexion exacte du rétroviseur sur la carrosserie qui apportera un avantage suffisant pour donner l’impression d’avoir franchis un cap supplémentaire vers le photoréalisme.

La plupart des gens considèrent le raytracing comme intrinsèquement meilleur que la rastérisation, pour cela ils se basent sur les images obtenues par les moteurs de rendu offline qui offrent un résultat largement supérieur à ce dont on peut rêver dans les jeux actuels. Mais ceci est basé sur la confusion entourant l’algorithme de raytracing. Les images qu’ils comparent à la rastérisation sont en fait la combinaison de plusieurs techniques : raytracing pour les réflexions directes, radiosité pour les réflexions diffuses, photon mapping pour les caustiques… Toutes ces techniques sont combinées pour s’approcher le plus possible de l’équation de rendu écrite par Kajiya. 

Le raytracing dans sa version de base, telle que celle que l’on tente actuellement d’implémenter en temps réel, n’est adapté que pour des réflexions parfaites et des ombres dures. Doom 3 a prouvé, il y a quelques années, qu’il était possible d’obtenir un moteur 3D robuste gérant parfaitement les ombres dynamiques avec la rastérisation, mais avec le recul il a aussi montré que des ombres dures n’étaient pas vraiment réalistes. Pour obtenir des ombres douces, ou des réflexions floues (comme celles obtenues sur du métal brossé par exemple) il faut se tourner vers des techniques de raytracing plus avancées comme le path tracing ou le raytracing distribué, mais ces deux techniques nécessitent un nombre de rayons nettement plus conséquent et sont encore bien loin du temps réel.

Certains pensent qu’à terme, nous disposerons de tellement de puissance de calcul à revendre que l’avantage de performances de la rastérisation ne sera plus un élément déterminant. La loi des rendements décroissants faisant son effet, le gain de performances offerts par la rastérisation sera vite oublié sur l’autel de l’élégance du raytracing, un peu comme le gain de performances offert par la programmation en assembleur n’était pas suffisant pour compenser l’avantage de la programmation avec des langages de haut niveau.

Mais personnellement nous n’en sommes pas convaincus, ou en tout cas nous sommes encore loin du moment où nous pourrons sacrifier la performance pour l’élégance et la simplicité. Il suffit en effet de regarder ce qui s’est passé ces dix dernières années dans le monde du rendu offline : alors qu’une image du film Toy Story prenait en moyenne deux heures pour être rendue, une image de Ratatouille prenait pour sa part six heures et demie et cela malgré une puissance de calcul multipliée par plus de 400 dans le même temps ! En d’autres termes plus on offre de puissance de calcul aux artistes et de moyens pour l’exploiter et plus ils arriveront à l’absorber.

Si une société comme Pixar, qui peut se permettre de consacrer plusieurs heures de calcul pour produire une image, préfère utiliser le raytracing avec parcimonie du fait de son impact sur les performances, on peut en déduire que le moment où nous aurons de la puissance à ne plus savoir qu’en faire dans le monde de la 3D temps réel pour pouvoir se permettre d’effectuer tout le rendu en raytracing est encore bien loin et qu’il y aura sans doute mieux à faire de toute cette puissance de calculs.

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