La taille des textures

Une texture étant une image plaquée sur une surface 3D, on peut imaginer que plus la texture sera grande et comportera de détails plus l'objet 3D pourra être détaillé dans son rendu final. Ceci est vrai lorsqu'il sera regardé à une taille où le pixel de texture projeté dans l'espace 3D est à peu près équivalent au pixel écran. Autant dire presque jamais car sur une image dynamique on sera toujours ou plus près ou plus loin !

La qualité du rendu dépend donc de la texture mais surtout de la qualité du filtrage de cette texture appliquée en 3D lorsqu'on s'en rapproche ou qu'on s'en éloigne. C'est ce que l'on appelle le "mip mapping". Ce filtrage est réalisé par la carte graphique 3D (des opérateurs cablés) à partir de la texture stockée dans sa mémoire graphique et éventuellement "préparée". C'est à dire que l'image d'origine est accompagnée de sous-images pré-filtrée...
Tout ceci pour faire simple, car dans la réalité les opérations sont un peu plus compliquées et varient selon l'usage que l'on fera des images 2D finales.

Ce qu'il faut retenir est que la taille des textures initiales est une valeur critique pour les performances du rendu 3D : le phénomène de "swap" mémoire entre mémoire graphique et mémoire vive standard est constant et le goulot d'étranglement est alors le débit du bus mémoire entre ces deux éléments. Un bon modèle 3D est celui qui a le meilleur compromis taille de textures/rendu du modèle.

On peut opposer le fait que la taille mémoire des cartes graphiques augmentant, il n'est pas nécessaire de se limiter en taille de textures. Cette évolution est vraie mais dans un jeu comme TS20xx cette évolution doit servir à multiplier les objets dans la scène et non pas à augmenter le détail d'un seul objet. À taille mémoire constante, économiser la mémoire de texture consiste à pouvoir augmenter la richesse de la scène sans abaisser la fréquence d'affichage.

En 2003, j'écrivais :

Une texture de taille 1024x1024 pixels occupe au minimum 4 fois plus de mémoire graphique qu'une texture de 512x512 pixels. Une certaine mode consiste à présenter comme un progrès l'utilisation dans un modèle de textures 1024x1024. Dans le cas de jeux de simulation graphique comme MSTS, pour les raisons précédentes je considère que c'est plutôt un défaut !

Il est préférable d'utiliser 2 ou 3 textures de 512x512 plutôt qu'une texture 1024x1024. De plus les cartes graphiques ne sont en général pas capable de détecter les surfaces de textures non utilisées : il faut donc optimiser au maximum et ne pas laisser une texture partiellement inutilisée.

En vingt ans, la puissance des cartes graphiques et processeurs remettent en cause cette affirmation, mais il est toujours prudent de s'en tenir aux tailles maximales de 1024x1024 ou 2048x1024 car une texture de 4096x4096 fonctionnera mais n'apportera pas d'amélioration visuelle sensible.

..  

 © 2009-2020 - PG - Mise à jour 29 avril 2020