Maths pour le rendu 3D — 03 — Les matrices

Une matrice n'est rien d'autre qu'une transformation rangée dans un tableau. Ce qu'elle contient, la matrice identité, et pourquoi multiplier deux matrices compose deux transformations en une.

03 — Les matrices

Ce que tu vas apprendre

  • Ce qu'est vraiment une matrice : une transformation dans un tableau
  • La matrice identité, le « ne rien faire »
  • Comment multiplier deux matrices, et pourquoi ça compose les transformations
  • Pourquoi l'ordre de multiplication n'est pas anodin

Prérequis


Les matrices font peur parce qu'on les présente comme des tableaux de nombres abstraits. La bonne intuition est beaucoup plus concrète : une matrice est une transformation rangée dans un tableau. Tourner, agrandir, déplacer un objet — tout ça s'encode dans une grille de nombres qu'on applique d'un coup à un point ou à un vecteur.

Une transformation dans une grille

Une matrice 3×3 contient trois lignes et trois colonnes. Multiplier un vecteur par cette matrice transforme le vecteur : le résultat est un nouveau vecteur, tourné et/ou redimensionné. L'astuce mentale qui débloque tout : les lignes (ou colonnes, selon la convention) de la matrice sont les images des axes du repère après transformation. La matrice dit « voici où atterrissent x, y et z » — et tout le reste suit.

En infographie, on travaille en réalité avec des matrices 4×4, pas 3×3. La quatrième dimension sert à encoder la translation (déplacer un point), ce qu'une 3×3 ne sait pas faire. On verra le mécanisme exact (les coordonnées homogènes) à l'article suivant. Pour l'instant, retiens : 4×4 = rotation + mise à l'échelle + translation, le tout dans un seul objet.

La matrice identité

La transformation « ne rien faire » a une matrice : l'identité. Des 1 sur la diagonale, des 0 partout ailleurs.

        | 1  0  0  0 |
   I =  | 0  1  0  0 |
        | 0  0  1  0 |
        | 0  0  0  1 |

Multiplier un point par l'identité le laisse inchangé. C'est le point de départ de toute construction de matrice : on part de l'identité et on la remplit. C'est aussi l'équivalent du « 1 » pour les nombres : M × I = M.

Multiplier deux matrices : composer

Voilà la vraie puissance des matrices. Si R est une rotation et T une translation, le produit R × T est une seule matrice qui fait la rotation puis la translation. On a composé deux transformations en une.

Le calcul du produit se fait par produits scalaires : chaque case du résultat est le produit scalaire d'une ligne de la première matrice par une colonne de la seconde. Pour des matrices 4×4, ça fait 16 produits scalaires.

cpp// produit de deux matrices 4x4 (schéma)
for (int i = 0; i < 4; ++i)
  for (int j = 0; j < 4; ++j)
    C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j]
            + A[i][2]*B[2][j] + A[i][3]*B[3][j];

L'intérêt en rendu est énorme : au lieu de transformer chaque sommet d'un modèle de mille sommets par une rotation, puis par une translation, puis par une mise à l'échelle (trois opérations × mille sommets), on pré-multiplie les trois matrices une fois, et on applique la matrice combinée à chaque sommet (une opération × mille sommets). Une scène entière se résume souvent à empiler des produits de matrices.

L'ordre compte

Attention : la multiplication de matrices n'est pas commutative. A × B ≠ B × A en général. Et c'est logique : tourner un objet puis le déplacer ne donne pas le même résultat que le déplacer puis le tourner (dans le second cas, il tourne autour de l'origine, donc il décrit un arc).

Tourner puis déplacer  ≠  Déplacer puis tourner

Cet ordre, et le sens dans lequel on lit la chaîne de multiplications, dépend d'une convention (vecteur-ligne ou vecteur-colonne) qui fait l'objet de l'article 05 — parce que c'est l'une des plus grandes sources de confusion de toute la 3D. Avant ça, l'article suivant explique le mécanisme qui permet à une matrice 4×4 de translater un point.


Sources

  • Scratchapixel. Geometry — Transforming Points and Vectors (et les chapitres « Matrices »). scratchapixel.com
  • Sanderson, G. (3Blue1Brown). Linear transformations and matrices + Matrix multiplication as composition. 3blue1brown.com
  • Strang, G. (2016). Introduction to Linear Algebra (5ᵉ éd.). Wellesley-Cambridge Press.

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