MIP map: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Knacker (discussione | contributi)
Nuova voce parzialmente tradotta da en.wiki
 
Knacker (discussione | contributi)
proseguita traduzione e aggiunta immagine
Riga 1:
{{WIP|Knacker}}
Una '''MIP map''' è, nell'ambito della [[computer grafica 3D]], una collezione [[Ottimizzazione (informatica)|ottimizzata]] di immagini [[bitmap]] precalcolate associate ad una [[texture]] principale; essa ha lo scopo di aumentare la velocità di [[rendering]] e di ridurre gli [[Artefatto (segnali)|artefatti]] a scapito di una maggiore richiesta di memoria.
 
Le MIP map sono molto usate nei [[videogioco|videogiochi]] 3D, [[simulatore di volo|simulatori di volo]] e altre applicazioni. Le lettere "MIP" sono l'acronimo della frase [[Lingua latina|latina]] ''multum in parvo'' che significa "molto nel piccolo".
 
==Origine==
Le MIP map furono inventate da Lance J. Williams nel [[1983]] che le descrisse nella sua pubblicazione ''Pyramidal parametrics'' dove le MIP map venivano immaginate impilate una sull'altra come a formare una piramide.
 
==Funzionamento==
[[Immagine:MipMap Example STS101.jpg|thumb|300px|Un esempio di insieme Mip map: l'immagine principale è sulla sinistra affiancata dalle copie di dimensione ridotta.]]
Ogni bitmap dell'insieme MIP map è una versione più piccola della [[texture]] principale, cioè con un dettaglio e una [[risoluzione (grafica)|risoluzione]] minore. La texture principale viene utilizzata quando il punto di vista è tale da permettere di renderizzarla con il massimo dettaglio, il processo passa ad un'immagine dell'insieme più ridotta (o ne crea una nuova, per [[interpolazione (matematica)|interpolazione]] tra le due immagini più "vicine", se è attivo il [[filtro trilineare]]) quando la texture è vista in lontananza o in piccole dimensioni.
La velocitá di rendering aumenta dato che il numero di [[pixel]] calcolati può diminuire sensibilmente rispetto a quello delle texture semplici. La possibilità che si formino artefatti si riduce per il fatto che sulle immagini MIP map è già stato applicato l'[[antialiasing]] con conseguente diminuzione del carico di lavoro in [[Real-time|tempo reale]]. Infine anche il ridimensionamento viene eseguito in modo più efficiente.
 
Se la texture ha una dimensione di base di 256x256 pixel (solitamente le texture sono quadrate e hanno lati uguali a una potenza di 2) allora l'insieme MIP map può contenere una serie di 8 immagini, ognuna della dimensione di un quarto rispetto alla precedente: 128x128 pixel, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2, 1x1. Se, per esempio, è necessario renderizzare la texture in uno spazio di 40x40 pixel, verrà calcolata un'interpolazione tra la MIP map da 64x64 e e qulla da 32x32.
 
L'aumento di spazio occupato da tutte le MIP map è di un terzo rispetto a quello occupato dalla texture originale, infatti la somma della [[serie geometrica]] con termine generale pari a 1/4 è:
 
:<math>\sum_{k=0}^{\infty}\left( \frac{1}{4} \right)^k = \frac{4}{3}</math>
 
a meno che non venga utilizzato un sistema di [[Compressione dell'immagine|compressione delle immagini]].
 
In molti casi è necesario un processo non uniforme in ogni direzione (cioè [[filtro anisotropico]]) e viene utilizzata una soluzione di compromesso. Si può adoperare una bitmap a risoluzione maggiore, in questo caso diminuisce la [[coerenza della cache]] e aumenta l'[[aliasing]] in una direzione, ma l'immagine tende a diventare più nitida. Diversamente si può adoperare una bitmap a risoluzione minore, in questo caso aumenta la coerenza della cache, ma l'immagine risulta sfuocata al punto che potrebbe diventare difficile da riconoscere.
 
Per risolvere questo problema si utilizzano, talvolta, MIP map non uniformi (chiamate ''RIP map''). Partendo da una texure base di 16x16, le risoluzioni delle RIP map sarebbero: 16×8, 16×4, 16×2, 16×1, 8×16, 8×8, 8×4, 8×2, 8×1, 4×16, 4×8, 4×4, 4×2, 4×1, 2×16, 2×8, 2×4, 2×2, 2×1, 1×16, 1×8, 1×4, 1×2 1×1. Sfortunatamente questo approccio richiede il quadruplo della memoria della texture di base.
 
==Voci correlate==
*[[Antialiasing]]
*[[Filtro anisotropico]]
 
[[Categoria:Computer grafica]]
 
[[de:Mip Mapping]]
[[en:Mipmap]]
[[es:Mipmap]]
[[fr:MIP mapping]]
[[ko:밉 맵]]
[[pl:Mipmapping]]