Utilizzare diverse versioni della stessa texture (adatte per differenti
risoluzioni) così da visualizzare sempre correttamente lo stesso oggetto
che si avvicina o si allontana dall'osservatore. Queste diverse versioni
vengono calcolate per mezzo di operazioni di filtering che ricavano il
valore corretto dei singoli pixel nelle versioni ingrandite o ridotte
della texture a partire dalla texture originale. E' una tecnica che permette
di risolvere in parte il problema dell'effetto mosaico delle texture (vedere
texture mapping) costruendo diverse texture da adattare allo stesso oggetto
a mano a mano che questo cambia di dimensioni. Supponiamo di avere un
muro piastrellato che si allontana da noi in prospettiva. Nella parte
più vicina a noi la texture si compone di numerosi texel (punti individuali)
che si mappano su altrettanti pixel in una proporzione uno a uno. A mano
a mano che il muro si rimpicciolisce, il numero di piastrelle rimane lo
stesso, ma i pixel a disposizione sono molti meno dei texel che compongono
la texture originale e nascono problemi di alising (imprecisione di visualizzazione)
per il fatto che il sistema non sa quale texel visualizzare in quel particolare
pixel. La tecnica del MIP mapping consiste nel calcolare diverse copie
della stessa texture a diverse risoluzioni per poi utilizzare quella più
adatta alle dimensioni dell'oggetto. Durante questa elaborazione, vengono
filtrati i texel non interessanti e si eliminano le distorsioni e le sovrapposizioni.
Quando l'oggetto viene ingrandito, si cambia texture oppure se ne calcola
una nuova usando il bilinear filtering. Questa tecnica, tuttavia, richiede
l'utilizzo di molta memoria per conservare le texture. Il bilinear mip
mapping perfeziona questa tecnica eseguendo, una volta che si è scelta
la texture appropriata, un'interpolazione bilineare su di essa per ottenere
il miglior valore di colore possibile per i pixel risultanti. L'interpolazione
bilineare agisce su due dimensioni, orizzontale e verticale, combinando
i valori dei texel che contribuiscono a definire il pixel e facendone
una media. La cosa può essere perfezionata ulteriormente con il trilinear
filtering che prende le due bitmap più vicine alla risoluzione desiderata
e ne esegue su ciascuna una media come nel bilinear filtering, per poi
calcolare la media dei due risultati. Il valore così ottenuto è più fedele,
ma il lavoro di calcolo raddoppia.. Vedi anche tile-based MIP mapping,
per-pixel MIP mapping, trilinear MIP mapping e palletized texture.
|