00 — Du monde 3D au pixel
Ce que tu vas apprendre
- Le problème que résout toute caméra de synthèse
- Pourquoi c'est un voyage entre plusieurs repères
- Les grandes étapes, de la scène au pixel
- Le plan de la série
Prérequis
- La série Maths pour le rendu 3D, surtout les matrices et la fonction LookAt
- L'idée de projection perspective vue dans la série ray tracing
Toute la 3D se ramène à une question : ce point, quelque part dans la scène, tombe sur quel pixel de l'image ? Y répondre proprement, c'est savoir construire une caméra. Cette série démonte le mécanisme, du modèle physique (le sténopé) jusqu'à la matrice de projection que toutes les cartes graphiques utilisent.
Le problème central
On a une scène en trois dimensions et une grille de pixels en deux dimensions. La caméra est l'objet qui fait le lien : elle a une position, une orientation, un champ de vision. À partir de là, chaque point 3D visible doit recevoir une adresse pixel (i, j) — colonne et ligne — pour être dessiné.
Ce calcul se fait dans les deux sens, selon la technique de rendu :
- en rasterization (cartes graphiques, jeux), on part des points 3D et on calcule où ils tombent sur l'écran (3D → pixel) ;
- en ray tracing, on part des pixels et on lance un rayon vers la scène (pixel → 3D), comme vu dans la série précédente.
Les deux reposent sur la même géométrie de caméra. C'est elle qu'on étudie ici.
Un voyage entre repères
Le point ne saute pas directement de la scène au pixel. Il traverse une suite de repères (la série maths a posé cette idée), chacun rapprochant un peu du résultat :
monde → caméra → écran → NDC → raster (pixel)
(world) (camera) (screen) (normalisé) (i, j)
- Monde → caméra : on exprime la scène du point de vue de la caméra (avec l'inverse de sa matrice).
- Caméra → écran : la projection proprement dite, qui aplatit la 3D en 2D (la fameuse division par la profondeur).
- Écran → NDC : on normalise dans un intervalle propre, indépendant de la résolution.
- NDC → raster : on convertit enfin en coordonnées pixel.
Chaque flèche est une transformation simple. Mises bout à bout, elles forment le pipeline de projection, le cœur de cette série.
Les paramètres d'une caméra
Avant le voyage, il faut décrire la caméra. Deux familles de réglages :
- Extrinsèques : où elle est et où elle regarde — c'est exactement ce que produit la fonction LookAt de la série maths.
- Intrinsèques : sa focale (donc son champ de vision), le format de son capteur (aspect ratio), ses plans de coupe proche et lointain. Ces réglages viennent du modèle physique de l'appareil photo, qu'on adapte au virtuel.
Le plan de la série
| Article | Contenu |
|---|---|
| 00 — Du monde 3D au pixel | Vue d'ensemble (cet article) |
| 01 — Le modèle du sténopé | Comment une image se forme |
| 02 — Focale, champ de vision, format | Régler la caméra |
| 03 — Le pipeline de projection | World → caméra → écran → NDC → raster |
| 04 — Frustum, near et far | Le volume visible et le clipping |
| 05 — Perspective vs orthographique | Les deux projections |
| 06 — La matrice de projection | Tout encoder dans une 4×4 |
| 07 — Glossaire | Tout le vocabulaire |
L'article suivant remonte à la source de tout ça : la plus simple des caméras, le sténopé — un trou dans une boîte.
Sources
- Scratchapixel. Computing the Pixel Coordinates of a 3D Point. scratchapixel.com
- Scratchapixel. The Pinhole Camera Model. scratchapixel.com
- Marschner, S., & Shirley, P. (2021). Fundamentals of Computer Graphics (5ᵉ éd.), chap. « The Camera ». CRC Press.