Dans une interview donné à Gamer Within, John Carmack présent le MegaTexturing, méthode qui sera utilisée par Enemy Territory: Quake Wars (ETQW) pour le rendu de terrain.
N'ayons pas peur des mots, John Carmack en fait de tonnes sur cette solution qu'il dit plus révolutionnaire que le normal mapping introduit par Doom3. L'E3, qui se déroule actuellement, explique peut-être son engommant démesurer. Elle est sans nul doute intéressante mais voyons ce qui se cache sous ce nom très commercial.
Le méga texturing semble être une sérieuse optimisation du texture splatting dont le principe est d'utiliser un certain nombre de tiles répéter sur le terrain. Cette méthode augmente virtuellement la résolution de la texture du terrain ce qui augmente la qualité du rendu visuel.
Pour le texture splatting classique, le coût en mémoire vidéo est ainsi bien plus faible mais le rendu nécessite une passe par tile divisé par le nombre d'unités de textures de la carte graphique (au mieux). L'optimisation est très complexe et très variable suivant les cartes. Selon mes tests, le texture splatting utilisant 5 tiles est jusqu'à 4.5 fois plus lent que le texture strechting (une grosse texture étirée sur le terrain) de résolution réel équivalent à la résolution virtuelle du texture splatting. (Voir l'image ci-dessous)
La méthode de John Carmack semble améliorer le texture splatting en utilisant seulement une texture avec tous les tiles intégrés. Cette solution peut réduire le nombre de passes à une seule mais le fragment shader pour sera plus long et le nombre d'attributs envoyés au GPU plus grand. Chaque tile, pouvant nécessiter un attribut pour ses coordonnées de textures. Nous pouvons également imaginer un pattern de shaders dédiés à une application pour lequel il ne sera pas nécessaire d'envoyer des coordonnées de textures supplémentaires. Enfin, un problème se pose au niveau du filtrage des textures sur les bordures. Si tous les tiles sont juxtaposés, le filtrage risque de provoquer des bugs d'affichages en mélangeant la couleur de texels n'appartenant pas au tile.
Cette méthode est prometteuse notamment pour le rendu de terrain de très haute résolution. Là où la quantité de mémoire vidéo nous empêchera d'avoir une texture de 32768*32768, le MegaTexturing répondra présent de manière plus rapide que le texture splatting traditionnel. A mon avis, il est possible de l'implémenter pour un investissement temps raisonnable, le plus ennuyeux étant la création des ressources notamment l'alpha map qui pour être vraiment réusite demande un éditeur dédié.
Enfin, John Carmack nous informe que l'implémentation utilisé par ETQW nécessite une carte actuelle mais qu'elle pourrait s'appliquer au bonne veille 3DFX. Dans l'absolue, je suis d'accord mais dans la pratique il n'y a pas API qui le permet, il faudra probablement passer par un fragment shader, c'est à dire que la technique nécessiterait au moins une Ge-Force 5200 ou une Radeon 9500 voir un GeForce 3 / Radeon 7000.
Remarque : Le soft de test n'est pas disponible pour le moment, si vous êtes vraiment intéressé, contactez moi.