-
OpenGL permet d'éviter les cas de sur-échantillonage
(petit polygone à l'écran qui contient une grande texture)
à l'aide de la technique du mip-mapping (multim in parvo
: beaucoup de choses dans un espace très petit)
-
Cette technique construit une pyramide de textures
de tailles de plus en plus petites à partir de la texture originale.
Chaque texture est obtenue en divisant par deux la taille en X et Y de
la texture supérieure dans la pyramide. On s'arrete lorsqu'on a
une texture de taille 1x1
-
Un filtrage moyen a lieu lorsqu'on passe d'une texture
à l'autre, et les différentes textures sont stockées
dans un format compressé.
-
OpenGL déterminera automatiquement quelle
tetxture appliquer en fonction de la taille du polygone dans l'écran.
-
La fonction de GLU gluBuild2DMipmaps() construit
et définit la pyramide des textures, se débrouille pour scaler
l'image de départ si elle n'a pas une longueur et une hauteur puissance
de 2, et associe les différentes textures à au texture object
courant.
// Génération de la pyramide de textures pour le mip-mapping
if ((gluerr = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img->width, img->height, pixelType,
GL_UNSIGNED_BYTE, (GLvoid *) (bytes)))) {
fprintf(stderr, "GLULib%s\n", gluErrorString(gluerr));
exit(-1);
}