Mipmapping diretto

Usate il mipmapping per ridimensionare le immagini di grandi dimensioni, se necessario.

Un'altra nuova funzione disponibile in Flash Player 10.1 e AIR 2.5 su tutte le piattaforme riguarda il mipmapping. In Flash Player 9 e AIR 1.0 era stata introdotta una funzione di mipmapping che migliorava la qualità e le prestazioni delle bitmap ridimensionate.

Nota: la funzione di mipmapping può essere applicata solo alle immagini caricate dinamicamente oppure alle bitmap incorporate, mentre non è disponibile per gli oggetti di visualizzazione che sono stati filtrati o memorizzati nella cache. Il mipmapping può essere elaborato solo se la larghezza e l'altezza della bitmap sono numeri pari. Se viene rilevata una larghezza o un'altezza espressa con un numero dispari, il mipmapping si interrompe. Ad esempio, un'immagine 250 x 250 può essere ridimensionata tramite mipmapping a 125 x 125, ma non oltre. In questo caso, almeno una delle dimensioni è un numero dispari. Le bitmap con dimensioni corrispondenti a potenze di due producono i risultati migliori; ad esempio: 256 x 256, 512 x 512, 1024 x 1024 e così via.

Ad esempio, immaginate che venga caricata un'immagine 1024 x 1024 e che uno sviluppatore desideri ridimensionarla per creare una miniatura per una galleria di immagini. La funzione di mipmapping esegue correttamente il rendering dell'immagine quando questa viene ridimensionata utilizzando le versioni intermedie di downsampling della bitmap come texture. Nelle versioni precedenti del runtime venivano create versioni ridotte intermedie della bitmap in memoria. Se un'immagine 1024 x 1024 veniva caricata e visualizzata a 64 x 64, le versioni precedenti del runtime creavano tutte le bitmap con dimensioni dimezzate. Ad esempio, in questo caso sarebbero state create bitmap 512 x 512, 256 x 256, 128 x 128 e 64 x 64.

Flash Player 10.1 e AIR 2.5 ora supportano il mipmapping direttamente dall'immagine originale fino alle dimensioni di destinazione richieste. Facendo riferimento all'esempio precedente, verrebbero create solo la bitmap originale da 4 MB (1024 x 1024) e la bitmap da 16 KB (64 x 64) ridotta tramite mipmapping.

La logica di mipmapping funziona anche con la funzione di scaricamento dinamico delle bitmap. Se viene utilizzata solo la bitmap da 64 x 64, la bitmap originale da 4 MB viene liberata dalla memoria. L'originale viene ricaricato solo se la mipmap deve essere ricreata. Inoltre, se sono richieste altre bitmap di mipmapping di varie dimensioni, per creare le bitmap viene utilizzata la catena di mipmap delle bitmap. Ad esempio, se deve essere creata una bitmap 1:8, vengono esaminate le bitmap 1:4, 1:2 e 1:1 per determinare quale deve essere caricata per prima in memoria. Se non vengono trovate altre versioni, la bitmap originale 1:1 viene caricata dalla risorsa e utilizzata.

Il decompressore JPEG può eseguire il mipmapping nel proprio formato. Questo mipmapping diretto consente di decomprimere una bitmap di grandi dimensioni direttamente ottenendo un formato mipmap senza caricare l'intera immagine non compressa. La generazione della mipmap risulta sensibilmente più veloce e la memoria utilizzata dalle bitmap di grandi dimensioni non viene allocata e poi liberata. La qualità delle immagini JPEG è paragonabile a quella ottenuta con la tecnica di mipmapping generale.

Nota: utilizzate il mipmapping con moderazione. Anche se contribuisce a migliorare la qualità delle bitmap ridimensionate, il mipmapping influisce sull'ampiezza di banda, sulla memoria e sulla velocità. In alcuni casi può essere più opportuno utilizzare una versione pre-ridimensionata della bitmap creata con un tool esterno e importarla nell'applicazione. Non cominciate con bitmap di grandi dimensioni se intendete soltanto ridimensionarle in riduzione.