37 votes

Quelle est la différence entre le filtrage de texture bilinéaire, trilinéaire et anisotropique ?

De nombreux jeux offrent la possibilité de filtrer les textures. Lequel dois-je choisir si je veux la meilleure qualité, même si cela implique des performances moindres ?

  1. Bilinéaire
  2. Trilinéaire
  3. Anisotrope

45voto

agent86 Points 117964

La façon dont vous les avez listés (Bilinéaire -> Trilinéaire -> Anisotrope) est l'ordre correct de la qualité d'image la plus faible à la meilleure, et par ordre croissant en ce qui concerne la puissance de traitement.

En termes simples, passer de bilinéaire à trilinéaire permet d'éviter les problèmes de changement de taille des textures (par exemple, lorsque vous marchez vers un mur, la texture ne semble pas changer brusquement à certains intervalles lorsque vous vous en approchez). En passant du trilinéaire à l'anisotropique, les textures des objets qui s'éloignent de vous paraîtront plus nettes qu'elles ne le seraient autrement.

Une explication un peu plus détaillée suit, mais notez qu'il s'agit d'un sujet très technique, et qu'un traitement complet est probablement au-delà de la portée de Gaming.StackExchange.

Le problème fondamental est que les artistes travaillant sur des textures 3D créent un ensemble d'images 2D de taille fixe. Ces images sont ensuite "peintes" sur des objets 3D. Cependant, une fois que la texture est appliquée à un objet 3D, elle peut être tournée et vue sous de nombreux angles et à des distances différentes. Le filtrage des textures tente de faire correspondre les étapes discrètes de l'art disponible au domaine continu de la façon dont vous pouvez le visualiser.

Par exemple, un artiste peut créer une image 64x64 qui sera utilisée comme texture pour un objet simple. Cependant, lorsque vous visualisez cet objet dans l'univers du jeu, vous vous en approchez très près et il remplit tout votre écran, qui peut avoir plusieurs milliers de pixels de large. Le moteur doit donc prendre une simple image 2D à faible résolution et la rendre beaucoup, beaucoup plus grande sans sacrifier la qualité.

Bilinéaire et Trilinéaire sont des techniques de filtrage "isotrope" pour le mipmapping, par opposition à "anisotrope". Wikipedia a un article décent sur ce sujet, mais je vais tenter de le résumer.

En fait, lorsque vous effectuez un zoom avant sur une texture (en approchant le joueur ou la caméra), les pixels de la texture doivent être mappés sur plusieurs pixels de l'image de sortie. Le mappage bilinéaire est un moyen de calculer ou d'interpoler la valeur de la couleur du pixel de sortie en fonction de la taille du polygone de sortie et des pixels de la texture d'entrée.

Le mappage trilinéaire tient compte du fait que les textures ont souvent plusieurs tailles en fonction de la distance qui vous sépare de l'objet texturé. L'artiste de tout à l'heure peut créer plusieurs tailles de textures différentes, afin d'appliquer des textures de plus haute résolution aux objets proches de la caméra, ce qui leur donne une meilleure apparence. Outre l'interpolation des pixels de la taille actuelle de la texture, le filtrage trilinéaire est également capable d'interpoler entre différentes tailles de texture.

enter image description here

(Une "mipmap" ou copie multi-résolution d'une image, voir cet article de Wikipedia )

Le filtrage anisotrope tient compte du fait qu'en raison de l'orientation de la caméra, le polygone de sortie peut ne pas être rectangulaire. Cette méthode de filtrage effectue des calculs supplémentaires pour calculer l'effet de l'angle de la caméra sur les dimensions de la texture de sortie.

Là encore, Wikipédia propose un bon exemple dans le cadre de la rubrique article sur le filtrage anisotrope. Vous pouvez également constater la différence par vous-même en jouant avec les paramètres graphiques de Google Earth, d'où est tirée la capture d'écran.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X