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 ce que l'on appelle 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... (voir utilitaire RemipIt sur Train-Sim.com et 3DTrains.com).
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 MSTS 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 dix ans, la puissance des cartes graphiques et processeurs remettent en cause cette affirmation, mais sous MSTS et OpenRails il est prudent de limiter les tailles à 1024x1024 car une texture de 2048x2048 fonctionnera mais n'apportera pas d'amélioration sensible.

Une fois vos textures créées, n'oubliez pas de passer un coup de "Savetex" : gain de place sur le disque assuré.

A suivre...  

 © 2002-2013 - PG - Création 13 décembre 2003 - Mise à jour 20 mars 2013