All'inizio c'era la luce
L'illuminazione OpenGL, per essere precisi, ha specificato alcune operazioni matematiche da applicare a un frammento, che sono state quindi combinate con trame per ottenere un colore finale.
E poi c'è stato Quake
Quake non ha usato questo tipo di illuminazione per molti dei suoi oggetti. Invece ha usato una seconda trama per rappresentare l'illuminazione, che è stata moltiplicata (o "modulata con") dalla trama dell'oggetto per derivare un colore finale.
Tuttavia, l'hardware dell'epoca non lo supportava in un'unica operazione. Quindi Quake doveva disegnare i suoi oggetti scena due volte:
- Disegna tutto una volta per definire le trame di base.
- Imposta una modalità di fusione modulata.
- Disegna tutto una seconda volta per applicare le trame luminose.
Questo ovviamente era lento; non solo tutte le geometrie dovevano essere trasformate e ritagliate due volte (che a quei tempi era un'operazione CPU), ma ogni pixel sullo schermo finiva per essere toccato due volte durante il rendering.
Inserisci multitexture
Multitexture era la soluzione a questo, ed era originariamente esposto tramite l'estensione GL_SGIS_multitexture, che esisteva solo su alcune schede 3DFX di consumo. Inizialmente consentiva solo la fusione di due trame (e con un insieme limitato di metodi di fusione).
Per citare dal readme originale di GLQuake :
GL_SGIS_multitexture Il
supporto multitexture consente a determinati hardware di rendere il mondo in un passaggio anziché in due. GLQuake utilizza due passaggi, uno per le trame del mondo e il secondo per le mappe luminose che si fondono sulle trame. Su alcuni hardware, con un'implementazione OpenGL GL_SIGS_multitexture supportata, questo può essere fatto in un unico passaggio. Su hardware che supporta questo, otterrai un aumento dal 60% al 100% della frequenza dei fotogrammi. Attualmente, solo le doppie schede TMU 3DFX (come Obsidian 2220) supportano questa estensione, ma presto seguiranno altri hardware.
È importante ricordare che in questo momento non esistevano effetti come la normale mappatura, qualsiasi altro tipo di illuminazione per pixel, persino shader e così via (bene, ma principalmente in articoli accademici e progetti di ricerca, e non sono stati considerati validi per l'uso nel rendering in tempo reale).
E così al presente
Da qui è praticamente come descritto nelle altre risposte. Il multitexturing è diventato una funzionalità standard nel tempo, con più modalità di fusione disponibili, che alla fine hanno lasciato il posto al codice shader arbitrario.
Ma ciò che è importante ai fini della tua domanda è questo: all'inizio la funzionalità standard era solo quella di poter usare una trama alla volta durante il rendering. Essere in grado di utilizzare più di una era una funzionalità aggiuntiva supportata solo dall'hardware di fascia alta, e quindi aveva bisogno di un nome. Quel nome avrebbe potuto essere "dual-texturing" (poiché le prime implementazioni supportavano solo due texture) ma con un occhio al futuro è stato scelto il nome "multitexture".
Ulteriori letture sulla storia di tutto ciò sono disponibili qui , e un buon resoconto storico (del contesto più ampio e della parte multitexturing giocata in essa) in questa risposta di Programmers.SE .