Condividi tramite


Risorse trama compresse (Direct3D 9)

Le mappe delle trame sono immagini digitalizzate disegnate su forme tridimensionali per aggiungere dettagli visivi. Vengono mappati in queste forme durante la rasterizzazione e il processo può utilizzare grandi quantità sia del bus di sistema che della memoria. Per ridurre la quantità di memoria utilizzata dalle trame, Direct3D supporta la compressione delle superfici di trama. Alcuni dispositivi Direct3D supportano le superfici di trama compresse in modo nativo. In questi dispositivi, quando hai creato una superficie compressa e caricato i dati in esso, la superficie può essere usata in Direct3D come qualsiasi altra superficie di trama. Direct3D gestisce la decompressione quando la trama viene mappata a un oggetto 3D.

Efficienza di archiviazione e compressione delle trame

Tutti i formati di compressione delle trame sono poteri di due. Anche se questo non significa che una trama è necessariamente quadrata, significa che sia x che y sono poteri di due. Ad esempio, se una trama è originariamente 512 per 128 byte, il successivo mipmapping sarà 256 per 64 e così via, con ogni livello decrescente di una potenza di due. A livelli inferiori, dove la trama viene filtrata a 16 per 2 e 8 per 1, ci saranno bit sprecate perché il blocco di compressione è sempre un blocco di texel da 4 a 4. Le parti inutilizzate del blocco vengono riempite. Anche se ci sono bit sprecate ai livelli più bassi, il guadagno complessivo è ancora significativo. Il peggior caso è, in teoria, una trama 2K per 1 (potenza 2"). In questo caso, viene codificata solo una singola riga di pixel per blocco, mentre il resto del blocco non è usato.

Combinazione di formati all'interno di una singola trama

È importante notare che qualsiasi singola trama deve specificare che i dati vengono archiviati come 64 o 128 bit per gruppo di 16 texel. Se i blocchi a 64 bit, ovvero il formato DXT1, vengono usati per la trama, è possibile combinare i formati alfa opachi e a 1 bit su base per blocco all'interno della stessa trama. In altre parole, il confronto della grandezza di unsigned integer di color_0 e color_1 viene eseguito in modo univoco per ogni blocco di 16 texel.

Una volta usati i blocchi a 128 bit, il canale alfa deve essere specificato in modalità esplicita (formato DXT2 e DXT3) o interpolata (formato DXT4 e DXT5) per l'intera trama. Come per il colore, quando viene selezionata la modalità interpolata (formato DXT4 e DXT5), è possibile usare otto alfa interpolati o sei modalità alfa interpolata in base a blocco. Anche in questo caso, il confronto di grandezza di alpha_0 e alpha_1 viene eseguito in modo univoco in base a blocchi.

Direct3D fornisce servizi per comprimere le superfici usate per la creazione di testo di modelli 3D. In questa sezione vengono fornite informazioni sulla creazione e la modifica dei dati in una superficie di trama compressa.

Le informazioni sono contenute negli argomenti seguenti.

trame Direct3D