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 9 : Conclusion

Un moteur de rendu hybride ?

Arrivé à ce niveau de lecture de l’article vous devriez penser que le raytracing est encore loin d’être prêt à remplacer la rastérisation mais qu’une bonne idée pourrait être, dans un premier temps, de mixer les deux techniques de rendu. En effet elles semblent de prime abord plus complémentaires qu’autre chose et on pourrait très bien imaginer rasteriser les triangles pour déterminer la visibilité afin de bénéficier des excellentes performances de cette technique, et se contenter d’employer le raytracing sur certaines surfaces pour ajouter du réalisme là où cela s’avère nécessaire : ajout d’ombre, de réflexions exactes ou de transparences. Après tout c’est de cette manière que Pixar a procédé pour le rendu de Cars, les modèles géométriques sont rendus avec REYES et il est ensuite possible de lancer des rayons à la demande pour simuler certains effets.

Malheureusement bien que très prometteuse dans l’esprit, cette solution n’est pas facilement applicable. Comme nous l’avons vu, un des principaux inconvénients du raytracing est lié à la structure de données nécessaire pour organiser les objets de façon efficace afin de limiter le nombre de tests d’intersection rayons/objets. Qu’on utilise un modèle de rendu hybride en lieu et place du raytracing pur ne change rien à ce niveau : il faudra toujours mettre en place cette structure de données avec les inconvénients que ça implique. On pourrait par exemple envisager de raytracer les données statiques et d’effectuer le rendu des données dynamiques via la rastérisation mais dans ce cas on perd tout l’intérêt du raytracing : les données dynamiques n’existants pas pour le raytracer, il sera impossible de les voir projeter une ombre ou de voir leurs réflexions.

De plus en termes de performances comme nous l’avons vu le plus gros problème concerne les accès mémoires des rayons secondaires et ce sont typiquement ces rayons là que l’on souhaite conserver dans notre moteur de rendu hybride. Au final le gain de performance obtenu ne serait pas aussi intéressant qu’on peut le penser : la majorité du temps de rendu étant dominé par le calcul des rayons secondaires, le gain obtenu en évitant le calcul des rayons primaires est négligeable.

En clair cette solution risque surtout, en voulant concilier les avantages des deux méthodes, de concilier les inconvénients des deux : en n’obtenant ni l’élégance du raytracing, ni les performances de la rastérisation.

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