00 — Assembler un moteur
Ce que tu vas apprendre
- Ce qui sépare le concept du ray tracing d'un vrai moteur
- Les briques qu'on va assembler, et d'où elles viennent
- Pourquoi le triangle devient la pièce maîtresse
- Le plan de la série
Prérequis
- La série Ray tracing — les fondations (le concept)
- Les séries Maths pour le rendu 3D et Caméra & projection
On a vu le concept du ray tracing (lancer un rayon par pixel, trouver ce qu'il touche, calculer une couleur), les maths (vecteurs, matrices, transformations) et la caméra (projection, frustum). Cette série assemble tout ça en un moteur capable de rendre autre chose que trois sphères : de vrais objets, faits de milliers de triangles. C'est la partie la plus concrète du parcours — celle où le code prend forme.
Du concept au moteur
Un moteur de ray tracing minimal, c'est une boucle simple :
pour chaque pixel :
générer un rayon depuis la caméra
trouver l'objet le plus proche que ce rayon touche
calculer la couleur en ce point
écrire la couleur dans le pixel
La série fondations a posé cette boucle avec des sphères. Mais le monde réel n'est pas fait de sphères : il est fait de maillages — des coquilles de triangles qui approximent n'importe quelle forme. Passer des sphères aux maillages, c'est ce qui transforme un exercice en un moteur utilisable.
Les briques à assembler
Chaque article ajoute une pièce :
- Générer les rayons caméra : convertir un pixel en un rayon dans le monde, en réutilisant la projection et la matrice de caméra (séries précédentes).
- Intersecter un triangle : la primitive universelle, avec l'algorithme de Möller-Trumbore.
- Les coordonnées barycentriques : pour savoir où dans le triangle on a tapé, et interpoler les attributs.
- Les maillages : structurer des milliers de triangles, avec leurs normales.
- Ray tracer un maillage : la boucle complète, et l'ombrage lisse.
- Transformer les objets : placer un objet dans la scène sans transformer chacun de ses triangles.
- L'accélération : pourquoi tester tous les triangles ne passe pas à l'échelle.
Pourquoi le triangle
Le fil rouge de la série, c'est le triangle. Plutôt que d'écrire une routine d'intersection pour chaque type de surface (sphère, cylindre, NURBS, surface de Bézier…), les moteurs modernes convertissent tout en triangles et n'optimisent qu'une seule routine : l'intersection rayon-triangle. C'est exactement la stratégie des cartes graphiques. Une primitive, ultra-optimisée, et toute la complexité géométrique se ramène à elle. On verra pourquoi le triangle, et pas un autre polygone, mérite ce rôle.
Le plan de la série
| Article | Contenu |
|---|---|
| 00 — Assembler un moteur | Vue d'ensemble (cet article) |
| 01 — Générer les rayons caméra | Du pixel au rayon dans le monde |
| 02 — La boucle de rendu | Formes simples, plus proche intersection |
| 03 — Le triangle, primitive universelle | Pourquoi le triangle, intersection |
| 04 — Möller-Trumbore | L'algorithme rayon-triangle rapide |
| 05 — Coordonnées barycentriques | Où dans le triangle, et interpoler |
| 06 — Les maillages polygonaux | Sommets, faces, géométrie indexée |
| 07 — Ray tracer un maillage | La boucle complète, normales lisses |
| 08 — Transformer les objets | Déplacer un objet via l'espace local |
| 09 — Vers l'accélération | Le mur du O(n), boîtes englobantes |
| 10 — Glossaire | Tout le vocabulaire |
L'article suivant attaque la première brique : fabriquer, pour chaque pixel, le rayon qui part dans le monde.
Sources
- Scratchapixel. Ray-Tracing: Rendering a Triangle et Ray-Tracing a Polygon Mesh. scratchapixel.com
- Shirley, P. Ray Tracing in One Weekend (et la suite The Next Week, qui ajoute les maillages). raytracing.github.io
- Pharr, M., Jakob, W., & Humphreys, G. (2023). Physically Based Rendering (4ᵉ éd.), chap. « Shapes ». pbr-book.org