MegaTexture

Un article de Wikipédia, l'encyclopédie libre.

MegaTexture désigne une technologie utilisée dans le cadre des jeux vidéo basés sur le Doom 3 Engine. Mise au point par id Software avec pour leader John Carmack, cette technologie est utilisée dans le jeu vidéo Enemy Territory: Quake Wars.

MegaTexture est une technologie conçue pour éliminer les textures répétitives dans un environnement. La version originale de Doom 3 a été critiquée pour son inaptitude à gérer les paysages et les décors extérieurs. La technologie MegaTexture corrige ce problème en permettant l'utilisation d'une seule texture massive (32000x32000 pixels) recouvrant tout le niveau. Il est actuellement nettement plus simple de charger une seule texture de 32000x32000 que, par exemple, seize textures de 4000x4000. Le résultat est considérablement plus détaillé et plus simple à produire qu'avec des textures répétitives.

La sous-couche MegaTexture permet aussi d'appliquer une grande variété de paramètres à certaines zones comme la tenue de route des véhicules, les bruits de pas, ou les particules à utiliser pour les explosions.

« La MegaTexture c'est juste... une énorme texture. C'est géant ! On part d'une texture de 32000x32000 pixels qui couvre le paysage du jeu tout entier. C'est en partie généré et en partie peint à la main. Donc, dans le premier processus, nous créons une map qui représente le terrain. Ensuite, nous avons, disons, un thème, et à notre outil nous lui disons : "L'herbe pousse dans cette pente à 45° puis à plus de 45° il n'y a plus que de la mousse. L'herbe pousse entre les fissures qu'il y a entre les rochers et la neige se met entre les rochers au sommet. Il y a des rochers burinés en haute altitude et des roches organiques à basse altitude. Un lit de rivière asséché" et tout ce genre de trucs. L'altitude, l'inclinaison et les autres types de textures existent. Et donc quand on clique sur "Go", ça génère une sorte de palette initiale de l'ensemble du paysage avec tout ce qu'on a prévu bien placé. Ensuite, on a un outil dans le jeu qui s'appelle "decal stamp" et on peut l'utiliser pour peindre les petits détails n'importe où, pour renforcer l'unité dans le décor.

Avec la MegaTexture, on a une image source de 6 gigabytes, quand on a fini de la compiler, et donc, quand on la compresse, elle arrive à 300 ou 400 megabytes, mais ça n'utilise que 30 ou 40 megabytes de mémoire sur l'ordinateur. Donc, c'est une manière plus efficace, comparée à un chargement d'un milliard de milliard de textures, que celle utilisée dans un jeu vidéo traditionnel.

La deuxième chose, c'est que comme la MegaTexture a un rendu de map normal, vous aurez besoin de beaucoup moins de polygones dans le maillage du terrain sous le sol. Et vous avez besoin de beaucoup moins de polygones que ceux nécessaires dans les cas d'une approche traditionnelle. Et cerise sur le gâteau, comme nous dérivons les particules (leur couleur, densité et taille) de la Megatexture : les chocs dans la conduite, les effets audio joués, le déplacement des véhicules et ainsi de suite... Nous n'avons plus besoin d'avoir des polygones qui différencient tous ces éléments, qui serait la manière classique de définir tout ça (comme par exemple "ce polygone fait ce bruit quand on marche dessus").

Donc, proportionnellement, nous dessinons moins de polygones que ce qu'on utilisait pour représenter la même scène dans Enemy Territory et nous utilisons moins de mémoire vidéo aussi pour faire plus de texture de surface. Et voila pourquoi c'est un système si bénéfique. Et pourquoi, cerise sur la cerise sur le gâteau, nous sommes capables de donner un "rendu force brute" où nous rendons absolument tout ce qui est à l'horizon. Donc, l'ensemble du terrain, jusqu'à l'horizon, est rendu. »
    — Paul Wedgwood, http://wiki.enemyterritory.fr/index.php/Interview_quakewars_Wedgwood_25_mai_2007