Mandragor


Un premier pipeline

Un pipeline c’est la suite des opérations qui sont faites pour obtenir le résultat à l’écran. C’est un terme souvent utilisé.


1 - Trouver quelle est la nouvelle position de l’objet dans l’espace global. Egalement trouver la position de la caméra dans ce même espace.
2 - Calculer la matrice qui permet de passer de l’espace objet à l’espace écran.
3 - Pour chaque vectrice de l’objet, faire l’opération matricielle pour trouver sa place sur l’écran.
4 - Passer en revue les faces et dessiner les triangles à l’écran grâce aux positions des vectrices dans l’espace écran calculées au point 3.

Plutôt simple non ? Et on recommence ça pour chaque objet.

Mais nulle part on ne parle de lampes ici, d’ailleurs. C’est curieux non ?

Aie aie aie, c’est la première fois que la belle théorie va devoir être bousillée J

Il se fait que ce qu’on fait au point 3 est très rapide, mais il est parfois utile de connaître la position des vectrices dans l’espace global, alors le système « toutes les transformations en une fois » ne nous donne justement que le résultat final!

Ici, on aurait bien besoin de connaître la position des vectrices dans l’espace global ainsi que de la direction de chacune des normales dans ce même espace global pour pouvoir calculer correctement les lumières (vraiment ? Exercice donné au lecteur : trouver une autre solution).

De plus, beaucoups d’algorithmes de traçage de triangles à l’écran ont besoin de connaître la coordonée Z du point dans l’espace caméra (Z-Buffer, correction de perspective, on verra ça plus tard), et d’autres algos ont besoin de connaître la coordonée complète (Clipping 3D, encore pour plus tard) ! Bien joué, on va quand même devoir se taper plusieurs opérations matricielles.

Que voulez-vous, c’est la vie, et c’est à vous de trouver comment on peut s’en passer au maximum (je vais pas tout vous dire non plus, et puis quoi encore =) )

Un pileline un peut plus complet serait donc :


1 - Trouver quelle est la nouvelle position de l’objet dans l’espace global. Egalement trouver la position de la caméra dans ce même espace.
2 - Calculer la position des vectrices ainsi que la direction des normales dans l’espace global grâce à la matrice de base de l’objet.
3 - Procéder au calcul des lumières pour trouver la couleur des points.
4 - Utiliser la matrice caméra pour trouver la position de chacun des points dans l’espace caméra.
5 - Utiliser la matrice de projection pour trouver la position de chacun des points dans l’espace écran.
6 - Passer en revue les faces et dessiner les triangles à l’écran.