En infographie 3D, le filtrage anisotrope (AF) est une méthode permettant d'améliorer considérablement la qualité des images de texture. Cette technique est unique en ce sens qu’elle n’est appliquée que sur des surfaces où la perspective de la caméra est biaisée et où la projection de texture semble non orthogonale. Comme l’origine du mot le suggère, le filtrage anisotrope ne traite pas chaque direction de la même manière. Comparé au filtrage bilinéaire et trilinéaire, le filtrage anisotrope élimine non seulement les effets d'aliasing, mais améliore également le flou et préserve les détails aux angles de vision extrêmes.
Le filtrage anisotrope peut préserver la « clarté » que la technologie mipmap traditionnelle perd en évitant l'aliasing.
À la fin des années 1990, en raison des limitations de la bande passante mémoire, l’utilisation du filtrage anisotrope est devenue populaire et est devenue une fonctionnalité standard des cartes graphiques grand public. Cette technologie est courante dans le matériel graphique moderne (et les pilotes vidéo), et les utilisateurs peuvent activer cette technologie de filtrage via les paramètres du pilote ou les interfaces d'index de jeu.
Le filtrage anisotrope permet une technologie de filtrage de texture anti-crénelage rapide, conservant des détails de texture nets sous tous les angles de vue. La technologie mipmap isotrope traditionnelle réduit de moitié la résolution sur chaque axe à mesure que la résolution de chaque couche diminue. Ainsi, lors du rendu de plans horizontaux sous des angles obliques, le résultat de la minimisation entraînera un manque de résolution horizontale en raison de la réduction de la fréquence de l'image sur l'axe vertical.
Par exemple, lorsque le filtrage anisotrope est appliqué à une texture 256x256, elle deviendra non seulement 128x128, mais également des résolutions non carrées telles que 256x128 et 32x128.
Avec le filtrage anisotrope mipmap, il est possible de détecter des images sous-échantillonnées anisotropes lorsque la fréquence d'image de la texture est différente pour chaque axe de texture. De cette façon, un axe n'est pas flou par la fréquence d'écran de l'autre axe, tout en évitant l'aliasing.
Pendant le processus de rendu, différents degrés de filtrage anisotrope peuvent être appliqués, le degré faisant référence au rapport d'anisotropie maximal pris en charge par le processus de filtrage. Par exemple, le filtrage anisotrope 4:1 (« quatre pour un ») améliorera encore la clarté des textures asymétriques au-delà de la plage 2:1. En termes pratiques, cela signifie que dans le cas de textures très inclinées, un filtre 4:1 apparaîtra deux fois plus net qu'un filtre 2:1.
Cependant, la plupart des scènes ne nécessiteront pas de filtrage 4:1, seuls les pixels les plus inclinés et généralement les plus éloignés nécessiteront des techniques de filtrage plus nettes.
Cela signifie qu'à mesure que le degré de filtrage anisotrope augmente, les bénéfices de l'amélioration de la qualité visible à l'œil nu diminueront, avec seulement un nombre relativement faible de pixels très inclinés affichant des textures plus claires.
Le véritable filtrage anisotrope est effectué proportionnellement sur une base instantanée par pixel. Dans le matériel graphique, lorsqu'un échantillonnage anisotrope est effectué, plusieurs sondes sont généralement effectuées autour du point central de la texture, en fonction de la forme projetée de ce pixel. Les méthodes logicielles antérieures utilisaient principalement des tables de sommation. Chaque sonde de filtrage anisotrope est généralement elle-même un échantillon mipmap filtré, ce qui augmente la complexité de l'échantillonnage.
Par exemple, seize échantillons anisotropes trilinéaires peuvent nécessiter 128 échantillons, tandis que le filtrage mipmap trilinéaire nécessiterait de prendre quatre échantillons par mipmap, suivis de seize autres échantillons anisotropes.
Cependant, une telle complexité de filtrage n’est pas toujours nécessaire. Il existe plusieurs moyens de réduire la charge de travail du matériel de rendu graphique. Dans le matériel graphique, il est plus courant de composer des valeurs de pixels filtrées à partir d'une seule ligne d'échantillons mipmap.
Le nombre d’échantillons requis peut rendre le filtrage anisotrope très gourmand en bande passante. Étant donné que plusieurs textures sont courantes, chaque taille d’échantillon peut être de quatre octets ou plus, de sorte que chaque pixel anisotrope peut avoir besoin d’extraire 512 octets de la mémoire de texture. Malheureusement, les écrans de télévision actuels peuvent facilement contenir plus de deux millions de pixels, et les fréquences d’images souhaitées pour les applications sont généralement supérieures à 60 images par seconde.
Ainsi, les besoins en bande passante pour les opérations de rendu de texture peuvent atteindre des centaines de Go par seconde, ce qui n’est pas rare lorsque des opérations de filtrage anisotrope sont impliquées.
Heureusement, un certain nombre de facteurs peuvent améliorer les performances. Les sondes elles-mêmes partagent des échantillons de texture mis en cache, à la fois à travers et à l'intérieur des pixels. Même avec un filtrage anisotrope à 16 échantillons, les 16 échantillons ne sont pas tous nécessaires, car seul le remplissage de pixels distants et asymétriques sera hautement anisotrope.
Dans ce contexte, le filtrage anisotrope a satisfait nos exigences en matière de qualité d'image à un degré sans précédent, ce qui nous amène à nous demander : dans quelle direction la technologie de l'imagerie va-t-elle évoluer à l'avenir ? Devenir plus réelle et plus extraordinaire ?