Au début il y avait de la lumière
L'éclairage OpenGL, pour être spécifique, qui spécifiait certaines opérations mathématiques à appliquer à un fragment, qui étaient ensuite combinées avec des textures pour dériver une couleur finale.
Et puis il y a eu Quake
Quake n'a pas utilisé ce type d'éclairage pour bon nombre de ses objets. Au lieu de cela, il a utilisé une deuxième texture pour représenter l'éclairage, qui a été multipliée par (ou "modulée avec) la texture de l'objet pour dériver une couleur finale.
Cependant, le matériel de l'époque ne le supportait pas en une seule opération. Donc, Quake devait dessiner ses objets de scène deux fois:
- Dessinez tout une fois pour définir les textures de base.
- Définissez un mode de fusion modulé.
- Dessinez tout une seconde fois pour appliquer les textures d'éclairage.
Bien sûr, cela a été lent; non seulement toute la géométrie devait être transformée et découpée deux fois (ce qui était à l'époque une opération du processeur), mais chaque pixel à l'écran a fini par être touché deux fois pendant le rendu.
Entrez multitexture
Multitexture était la solution à cela, et a été initialement exposé via l'extension GL_SGIS_multitexture, qui n'existait que sur certaines cartes 3DFX grand public. À l'origine, il ne permettait de mélanger que deux textures (et avec un ensemble limité de modes de fusion).
Pour citer le readme original de GLQuake :
GL_SGIS_multitexture La
prise en charge de multitextures permet à certains matériels de rendre le monde en un seul passage au lieu de deux. GLQuake utilise deux passes, une pour les textures du monde et la seconde pour les lightmaps qui sont mélangées aux textures. Sur certains matériels, avec une implémentation OpenGL prise en charge par GL_SIGS_multitexture, cela peut être fait en un seul passage. Sur le matériel qui prend en charge cela, vous obtiendrez une augmentation de 60% à 100% de la fréquence d'images. Actuellement, seules les cartes double TMU 3DFX (telles que l'Obsidian 2220) prennent en charge cette extension, mais d'autres matériels suivront bientôt.
Il est important de se rappeler qu'à ce stade, les effets tels que le mappage normal, tout autre type d'éclairage par pixel, même les shaders, etc. n'existaient pas (eh bien, ils existaient , mais principalement uniquement dans les articles universitaires et les projets de recherche, et n'étaient pas considérés comme viables pour une utilisation dans le rendu en temps réel).
Et donc jusqu'à présent
De là, c'est à peu près comme décrit dans les autres réponses. Le multitexturing est devenu une fonctionnalité standard au fil du temps, avec plus de modes de fusion devenant disponibles, cédant finalement la place à un code de shader arbitraire.
Mais ce qui est important pour les besoins de votre question est le suivant: au début, la fonctionnalité standard ne pouvait qu’en utiliser une texture à la fois lors du rendu. Pouvoir en utiliser plusieurs était une fonctionnalité supplémentaire prise en charge uniquement par du matériel haut de gamme, et il fallait donc un nom. Ce nom aurait pu être "dual-texturing" (comme les premières implémentations ne supportaient que deux textures) mais avec un œil sur l'avenir, le nom "multitexture" a été choisi.
Une lecture plus approfondie de l'histoire de tout cela est disponible ici , et un bon résumé historique (du contexte plus large et du rôle du multitexturing) dans cette réponse de Programmers.SE .