Moi, il y a un truc qui m' a énormément entravé pendant mon apprentissage des mathématiques, c'était de presenter les matrices comme mystérieuses, en conséquence, en bijection avec les applications linéaires...
(NB : une matrice est représentée par un tableau à deux entrées de nombres)
Alors qu'en fait les matrices ont, dès leur origine, été conçues pour ça précisément !
Alors que c'est la raison même de leur création !
Le rapport 1 : 1 était à la base de la conception des matrices, pour représenter les applications linéaires.
Le génie dans tout cela :
On sait que la composition d'applications linéaires, reste une application linéaire.
Avec la multiplication des matrices (qui représente la composition d'applications linéaires), on peut simplifier toute composition de matrices en une seule matrice.
En 3D, c'est fondamental. Une fois que l'on a multiplié toutes les matrices de transformations pour en obtenir qu'une, il suffit d'appliquer la matrice résultat à tous les points.
Quelque soit la complexité des transformations qui leurs sont appliquées.
L'autre chose plutôt géniale, c'est l'inversion de matrice.
Et oui, c'est génialement génial. J'insiste.
Etant donnée une matrice qui transforme un point A en un point B, sa matrice inverse permet de transformer le point B en point A.
Calculer une matrice inverse est assez couteux. On peut utiliser deux techniques, la technique des pivots et la technique de la comatrice. (Cette dernière est celle qui est utilisée en 3D).
Je l'ai appris après coup, mais,
bref, j'aurais aimé qu'on m'enseigne les matrices, et leur importance, et leur caractère génial, autrement.
Parce qu'à l'époque (en maths sup) je prenais ça pour du snobisme intellectuel, et j'ai fait une croix dessus. Je me suis fermé comme une huître.
Mon prof n'avait pas réussi et pas cherché à expliquer l'importance cruciale (et même géniale) que les matrices avaient.
Je l'ai appris par moi-même, plusieurs années après.
En 3D, on utilise que des matrices 4x4.
Et les points sont exprimés sous forme de vecteurs 4x1, où la quatrième valeur est 1.0.
Donc un buffer représentant un objet complet est une matrice de 4 colonnes et de n lignes, n étant le nombre de points qui constituent l'objet.
Mais on ne raisonne pas comme cela. Ce sont des points (pris individuellement) multipliés par la matrice, à la chaîne.
Je vais pas complexifier les choses, mais en 3D, on n'utilise pas que des applications linéaires, on est dans un espace projectif. Et c'est à cela que sert la 4ème coordonnée des points.
Posons que le centre (0,0) est au centre de votre écran.
La matrice de projection définit la perspective.
On divise les coordonnées par le quatrième element du vecteur.
La matrice de projection balance le 3ème élément, z, la profondeur, dans le quatrième element du vecteur définissant le point.
J'avoue j'ai oublié le nom de ce type de coordonnées. Désolé.

Enfin, ça m'est revenu. Ces coordonnées s'appellent les "coordonnées homogènes".
Si on a un point (x, y, z), le résultat est (x/z, y/z). Aussi simple que cela, sur le plan de projection.
Plus il est grand, et plus il est proche et on se rapproche du centre.
C'est enfantin, mais c'est ce qui crée la profondeur dans les scènes 3D !