Construire un ray tracer — 00 — Assembler un moteur

Vue d'ensemble de la série la plus concrète du parcours : transformer les briques théoriques (caméra, maths, intersections) en un vrai moteur de ray tracing capable de rendre des maillages.

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


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 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

Réservez un audit gratuit de 30 minutes. Je vous montre concrètement ce qu'on peut automatiser.