MIP mapping

Un article de Wikipédia, l'encyclopédie libre.

Le MIP mapping est une technique d'application de textures, les MIP maps, qui permet d'améliorer la qualité de l'affichage.

Le but du MIP mapping est d'éviter la pixellisation lorsqu'on s'éloigne d'une texture.

Le niveau de détail des textures est adapté à la distance de l'objet. Ainsi, un objet proche affichera des textures en haute résolution tandis qu'un objet lointain se verra attribuer une texture de faible taille. Différents niveaux de détails, dit MIP map levels, peuvent être choisis. Le MIP mapping consiste à envoyer au GPU des échantillons de texture de résolutions décroissantes qui seront utilisés à la place de la texture originale, en fonction de la distance du point de vue à l'objet texturé et du niveau de détails nécessaire. Le GPU n'a alors plus qu'à appliquer les bonnes textures sur les bons objets suivant leur éloignement, réadaptant la texture chaque fois que l'objet se rapproche. La texture utilisée lors du rendu sera alors celle dont la résolution est la plus proche de celle de l'objet sur l'image projetée.

Par exemple, à partir d'une image d'une taille de 256x256 pixels seront produits les mêmes images aux résolutions de 128x128 pixels, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2 et 1x1. Si la taille de l'objet sur l'image projetée à l'écran est de 30x30 pixels, la texture utilisée sera alors celle de résolution 32x32 pixels.

Le filtrage trilinéaire permet d'éviter de voir les « sauts » lors du passage d'une texture à l'autre, en faisant une transition progressive.

Le MIP mapping seul est bien adapté à un texture perpendiculaire à l'observateur. Mais pour un sol par exemple, un filtrage anisotrope est nécessaire.

Mip vient du latin Multum in parvo, qui signifie « beaucoup de choses dans un petit endroit ». Le terme a été introduit par Lance Williams en 1983 dans son article Pyramidal Parametrics.

Bien que la création de MIP map demande plus de mémoire vidéo (environ 33% de plus), cette technique permet de réduire les artefacts dus à des filtrages successifs appliqués sur la texture lorsque l'objet est éloigné. La diminution du nombre de texels à traiter et des opérations de filtrages en temps réel de la texture permet également un rendu plus rapide de l'image.