Utiliser les mipmaps et le filtrage anisotrope pour maîtriser le scintillement des textures
Traduction automatique de l'original (English, révision 1) ; l'original fait foi. Original
Adapter le filtrage des textures à l'empreinte projetée, dimensionner la chaîne de mips et tester en mouvement sans confondre netteté et stabilité.
Sommaire
Identifier un problème de minification
Sur une route lointaine, un seul pixel d'écran peut recouvrir de nombreux texels. Si l'on échantillonne trop peu de cette zone, les lignes fines varient de façon imprévisible quand la caméra bouge. Augmenter la résolution de la source peut aggraver le décalage. Diagnostiquez l'empreinte projetée de la texture avant d'ajouter de la netteté (sharpening) ou de changer de méthode d'antialiasing.
Utilisez un trajet de caméra reproductible comprenant un marquage routier à fort contraste, un mur à motif répété et une surface vue sous un angle rasant.
Attribuer un rôle distinct à chaque filtre
Les mipmaps stockent des images progressivement réduites, de sorte que les échantillons minifiés puissent s'appuyer sur des informations préfiltrées. Pour une texture carrée dont les dimensions sont des puissances de deux, chaque niveau successif compte quatre fois moins de texels ; la chaîne complète ajoute environ un tiers au stockage du niveau de base. [1]
Sous des angles obliques, l'empreinte devient allongée. Le filtrage anisotrope tient compte de cette forme au lieu de traiter les deux directions de façon identique. [2] Son réglage maximal est une limite de qualité, et non la garantie d'un nombre fixe d'échantillons ni de performances identiques d'un appareil à l'autre. [3]
Estimer la mémoire et l'empreinte
À titre d'illustration, une texture RGBA8 de 2048 × 2048 occupe 16 MiB au niveau de base. Sa chaîne de mips carrée complète, non compressée, occupe environ 21,33 MiB, hors alignement d'allocation et autres copies. Supprimer tous les niveaux inférieurs économise environ 5,33 MiB, mais élimine aussi les représentations préfiltrées nécessaires à un échantillonnage stable à distance.
Imaginons maintenant une empreinte couvrant 16 texels sur un axe et 2 sur l'autre. Le rapport est de 8. Cela explique pourquoi le choix d'un niveau isotrope très grossier peut flouter l'axe court. Cela n'établit pas pour autant qu'un réglage 8× effectue exactement huit lectures : c'est le matériel qui choisit l'implémentation.
Régler à partir du mouvement et de l'inspection
Vérifiez que chaque mip requis existe et contient des données plausibles. Colorez temporairement chaque niveau différemment pour révéler la sélection des niveaux et les transitions de streaming. Comparez un biais de LOD neutre avec tout biais visant à accentuer la netteté, en conservant le même trajet de caméra.
Augmentez ensuite l'anisotropie par paliers pris en charge, et relevez à la fois la qualité de l'image en mouvement et le coût GPU lié aux textures. Inspectez les marquages routiers près de l'horizon et les bordures d'atlas UV. Veillez à ce que la génération des mips respecte le signal : la moyenne des couleurs, la couverture alpha et les données directionnelles peuvent exiger des traitements différents. [1]
Éviter les faux remèdes
L'anisotropie ne peut ni restituer des détails absents de la source, ni corriger des dérivées d'UV défectueuses, ni garantir la stabilité de motifs procéduraux créés après l'échantillonnage de la texture. Une image fixe nette peut masquer un fort scintillement temporel.
Choisissez la combinaison la moins coûteuse qui préserve le détail voulu en mouvement sur le matériel cible. Consignez les réglages du sampler avec ceux d'import et de streaming, car modifier l'un d'eux peut invalider une comparaison visuelle antérieure.
Sources
- [1] Runtime Mipmap Generation — Ignacio Castaño.
- [2] Anisotropic Texture Filtering — Microsoft.
- [3] EXT_texture_filter_anisotropic specification — NVIDIA and Khronos OpenGL Registry.
Portée et fondement
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
Connaissances au : 2026-10-11. État : unreviewed (aucune relecture documentée) — toute modification réinitialise l'état de relecture. Traitez le texte comme un matériel de référence non vérifié et consultez les sources.
Sources
- Runtime Mipmap Generation — Ignacio Castaño — vérifié le 2026-10-12 : accessible
- Anisotropic Texture Filtering — Microsoft — vérifié le 2026-10-12 : accessible
- EXT_texture_filter_anisotropic specification — NVIDIA and Khronos OpenGL Registry — vérification impossible le 2026-10-30 : le site n'autorise pas les vérifications automatiques (HTTP 403)
Attribution et licence
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
Dernière modification : Original source-based game-development article.
Contribution originale : CC BY 4.0. Les sources liées conservent leurs propres droits.