Du modèle au pixel
Le vocabulaire ordinaire de l'infographie se laisse passer, parce que chaque mot a aussi un sens courant. Dans cette matière, les mots sont plus serrés que cela.
Pixel, primitive, image
En imagerie numérique, un pixel, élément d'image, est un point isolé d'une image matricielle. Les pixels se tiennent sur une grille bidimensionnelle régulière, et on les dessine souvent comme des points ou des carrés. Chaque pixel est un échantillon d'une image d'origine. Plus d'échantillons donnent d'ordinaire une description plus fidèle de cet original. L'intensité d'un pixel varie. Dans un système de couleur, un pixel a typiquement trois sous-pixels, rouge, vert et bleu. Si l'on agrandit assez une photographie numérique, les carrés cessent de feindre un ton continu. Ce n'est pas un défaut de l'écran. C'est la représentation, vue à la mauvaise distance.
Une primitive est une unité de base qu'un système graphique assemble en une image ou un modèle plus complexe. Dans un jeu 2D, les primitives peuvent être des sprites et des cartes de caractères. En CAO, ce sont les primitives géométriques que propose le modeleur. En rendu 3D, ce sont des polygones, très souvent des triangles. Le matériel peut prendre une primitive en charge directement, parce que la dessiner dans le silicium est plus rapide que de la reconstruire par programme à chaque fois. Ou bien la primitive n'est qu'une commodité fournie par l'application, et le matériel voit dessous quelque chose de plus simple.
Une image numérique est soit une image vectorielle, soit une image matricielle. Les images matricielles sont les plus courantes des deux. L'image peut venir d'un appareil photo, d'un instrument d'optique, ou d'un calcul qui n'a jamais passé par une lentille. Une fois la représentation choisie, elle doit encore devenir de la lumière sur un écran.
Rendu
Le rendu est la production d'une image 2D à partir d'un modèle 3D, au moyen d'un programme. Un fichier de scène tient les objets dans un langage défini ou une structure de données : géométrie, point de vue, texturage, éclairage et ombrage, comme description d'une scène virtuelle. Ces données passent à un programme de rendu et en sortent comme image numérique, un fichier matriciel. Le moteur de rendu est d'ordinaire intégré au logiciel graphique. Certains sont des greffons. D'autres sont des programmes séparés. Le mot est une analogie avec le rendu qu'un artiste fait d'une scène, une image tirée d'une description plutôt que d'une séance devant la chose.
Les méthodes techniques diffèrent. Le problème général, non. On a une description tridimensionnelle et il faut une image bidimensionnelle. Les étapes de ce chemin, sur un dispositif tel qu'un GPU (processeur graphique), s'appellent le pipeline graphique. Un GPU est un dispositif qui aide le CPU dans le calcul. Si la scène doit paraître raisonnablement réaliste, et prévisible sous un éclairage virtuel, le logiciel doit tenir compte de l'équation du rendu. Cette équation ne couvre pas tous les phénomènes d'éclairage. C'est un modèle d'éclairage général pour l'image de synthèse, pas une théorie complète de l'optique. « Rendu » est aussi le mot employé quand un programme de montage calcule des effets jusqu'à un fichier fini. Même mot, tâche plus étroite : là, la géométrie est déjà une suite d'images, et le programme les combine.
Projection, rayons, ombrage
La projection 3D reporte des points tridimensionnels sur un plan bidimensionnel. La plupart des écrans actuels sont plats, donc cette projection est partout. Les applications 3D en temps réel le font d'ordinaire par rastérisation : le polygone projeté couvre certains pixels, et ces pixels sont peints. La rastérisation demande, pour chaque polygone, quels pixels il couvre. Le lancer de rayon demande, pour chaque pixel, ce qu'a fait la lumière.
Le lancer de rayon est l'un des algorithmes dans l'ordre de l'image. Il produit une image en suivant le trajet de la lumière à travers les pixels d'un plan image. Il peut atteindre un haut degré de photoréalisme, d'ordinaire plus haut que le rendu par balayage usuel, et le coût est plus élevé aussi. Longtemps, ce coût l'a tenu à l'écart des machines interactives. Le coût a bougé. L'idée, non.
L'ombrage est la façon de figurer la profondeur en faisant varier l'obscurité. Les dessinateurs connaissaient déjà le mot. On pose le médium plus dense, ou dans une couleur plus sombre, là où la forme se détourne de la lumière, et plus légèrement là où elle lui fait face. Les hachures croisées sont une technique : des lignes perpendiculaires en grille, plus serrées là où le passage doit se lire plus sombre. En infographie, le mot s'est élargi. Il veut dire aussi que l'on applique des shaders, ces petits programmes dont le travail est de décider la couleur d'un échantillon. Un shader peut imiter les hachures croisées. Il peut aussi faire ce qu'aucun stylo ne sait faire, parce qu'il connaît la normale de la surface et les lumières comme des nombres.
Texture, crénelage, volume
Le placage de texture ajoute du détail, une texture de surface ou de la couleur à une image générée ou à un modèle 3D. Edwin Catmull l'a appliqué à l'infographie 3D en 1974. Une carte de texture est posée sur la surface d'une forme ou d'un polygone. La comparaison usuelle est un papier à motif enroulé autour d'une boîte blanche unie. La comparaison est bonne, et elle échoue sur un point : le papier fait des plis, et l'on peut demander à une carte de texture de n'en pas faire. Le multitexturage emploie plus d'une texture à la fois sur un polygone. Les textures procédurales s'obtiennent en réglant les paramètres d'un algorithme. Les textures bitmap sont peintes dans un éditeur d'images, ou prises par un appareil. Poser une texture sur la surface d'un polygone demande d'ordinaire un placage UV, mise en place manuelle des coordonnées de texture. Les surfaces NURBS portent leur propre paramétrage, qui peut servir de coordonnées sans dépliage séparé.
La même rubrique couvre les cartes de normales et les cartes de relief, qui feignent une hauteur, les cartes spéculaires, qui feignent le brillant, et les cartes d'environnement, qui feignent un miroir. Rien de cela ne change le fait que la surface sous-jacente peut être un maillage grossier. Cela change ce que le calcul d'éclairage croit de cette surface.
Dessiner un objet indépendant de la résolution, un modèle 3D par exemple, sur un dispositif matriciel tel qu'un LCD ou un CRT, produit du crénelage. Les artefacts se tiennent surtout le long des arêtes géométriques et le long des frontières du détail de texture. Familièrement, ce sont des effets d'escalier. Les méthodes d'anticrénelage les réduisent. L'image est plus douce pour l'œil, et le calcul coûte quelque chose. Le suréchantillonnage est une famille de méthodes. Un artiste qui choisit un réglage choisit un point de ce compromis. Une texture bitmap préparée à une résolution et montrée à une autre, un modèle texturé loin de la caméra par exemple, va créneler. Une texture procédurale peut créneler à n'importe quelle résolution, parce qu'elle n'a pas de pixels à elle tant qu'on ne l'échantillonne pas. Le mipmapping et le filtrage de texture sont les remèdes usuels dans le cas de la texture. Ils ne rendent pas le problème philosophique. Ils font coïncider l'échantillon avec la taille à laquelle on le dessine.
Le rendu volumique affiche une projection 2D d'un ensemble 3D d'échantillons. Un ensemble typique est une pile d'images de coupe venues d'un scanner CT ou IRM, prises à intervalle régulier, chaque coupe étant elle-même une grille régulière de pixels. Chaque élément de volume, ou voxel, porte une seule valeur, échantillonnée dans son voisinage immédiat. On peut alors assigner la couleur selon le tissu, de sorte que l'os, le muscle et les vaisseaux se lisent séparément dans la projection. C'est du rendu, et ce n'est pas le même travail que rendre un personnage modélisé. Il peut n'y avoir aucune surface dans les données tant que le moteur de rendu n'a pas décidé où l'une doit apparaître.
L'infographie tridimensionnelle, c'est ce que l'on a une fois que les primitives sont le modèle d'un solide plutôt qu'une marque plane. Le vocabulaire ne change pas. La quantité de données qu'il a à couvrir, si.
