01 — Systèmes de coordonnées
Ce que tu vas apprendre
- Ce qu'est un système de coordonnées : origine et axes
- La différence entre espace monde et espace local
- Le piège de la main droite contre la main gauche
- La convention de Scratchapixel (et pourquoi il faut toujours connaître la sienne)
Prérequis
- L'article 00 : points et vecteurs
Un point, c'est (x, y, z). Mais ces trois nombres ne veulent rien dire tout seuls. x = 3, mesuré à partir d'où, dans quelle direction ? Il faut un système de coordonnées — un repère — pour leur donner un sens. C'est le décor sans lequel toute la géométrie s'effondre.
Origine et axes
Un repère, c'est deux ingrédients : une origine (le point de référence, (0, 0, 0)) et des axes gradués qui partent de cette origine. Sur un seul axe, un nombre suffit : une distance signée depuis l'origine, positive d'un côté, négative de l'autre.
En empilant des axes perpendiculaires entre eux, on obtient un repère cartésien : deux axes (x, y) en 2D, trois (x, y, z) en 3D — l'espace euclidien. Un point est alors la liste de ses distances le long de chaque axe.
Conséquence essentielle : le même point physique a des coordonnées différentes selon le repère dans lequel on le lit. Passer d'un repère à un autre, c'est tout le métier — et ça se fait par des additions (translation) et des multiplications (mise à l'échelle, rotation), qu'on verra avec les matrices.
Espace monde, espace local
En pratique, une scène empile plusieurs repères. Le plus important est l'espace monde (world space) : le repère maître, la référence absolue dans laquelle tout est positionné. C'est le « plateau de tournage ».
Mais chaque objet a aussi son espace local (object space), centré sur lui-même. Les sommets d'un cube sont définis autour de son propre centre, sans savoir où le cube atterrira dans le monde. Une matrice (la matrice de transformation de l'objet) fait le pont entre les deux : elle dit où placer, orienter et dimensionner l'espace local de l'objet dans l'espace monde. On enchaînera ensuite vers l'espace caméra, puis l'espace écran. Tout le pipeline de rendu n'est qu'une suite de passages d'un repère à l'autre.
Le piège : main droite contre main gauche
Voici le grand classique des bugs de 3D. Une fois x (droite) et y (haut) posés, il reste à décider où pointe z. Deux choix, et c'est là que tout le monde se trompe un jour.
- Repère droitier (right-handed) : l'axe z pointe vers toi.
- Repère gaucher (left-handed) : l'axe z pointe loin de toi, dans l'écran.
Repère droitier (right-handed)
y
|
|
+———— x
/
z (sort de l'écran, vers toi)
Le moyen mnémotechnique : aligne le pouce (x), l'index (y) et le majeur (z). Si seule ta main droite réussit l'alignement, le repère est droitier. La règle des trois doigts donne aussi le sens des rotations positives et l'orientation des normales (l'ordre des sommets d'un triangle décide vers où regarde sa normale).
Pourquoi c'est un piège ? Parce que selon la convention, une rotation positive tourne dans un sens ou dans l'autre, et une normale pointe vers l'intérieur ou l'extérieur. Importer un modèle d'un logiciel gaucher dans un moteur droitier, c'est voir les objets retournés ou éclairés à l'envers. Passer d'un repère à l'autre se fait souvent en niant une coordonnée (par exemple le z, ou le x), ce qui inverse justement l'orientation des normales.
La convention de Scratchapixel
Scratchapixel utilise un repère droitier, avec y vers le haut et z vers le spectateur. Ce n'est ni mieux ni moins bien que l'autre choix — OpenGL est droitier, DirectX est gaucher, et les deux fonctionnent. Ce qui compte, c'est d'en choisir un, de le savoir, et de s'y tenir. La moitié des bugs de transformation vient d'un mélange involontaire de conventions.
L'article suivant arme nos vecteurs avec les deux opérations qui font tourner toute la 3D : le produit scalaire et le produit vectoriel.
Sources
- Scratchapixel. Geometry — Coordinate Systems. scratchapixel.com
- Lengyel, E. (2011). Mathematics for 3D Game Programming and Computer Graphics (3ᵉ éd.), chap. 2. Cengage.
- Marschner, S., & Shirley, P. (2021). Fundamentals of Computer Graphics (5ᵉ éd.). CRC Press.