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 tali dispositivi, quando è stata creata 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 trama

Tutti i formati di compressione della trama 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, la successiva mipmapping sarà 256 per 64 e così via, con ogni livello che diminuisce per 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 4 per 4 blocco di texel. Le parti inutilizzate del blocco vengono riempite. Anche se ci sono bit sprecate a livelli minimi, il guadagno complessivo è ancora significativo. Il peggior caso è, in teoria, una trama 2K per 1 (2 %). In questo caso, solo una singola riga di pixel viene codificata per blocco, mentre il resto del blocco è inutilizzato.

Combinazione di formati all'interno di una singola trama

È importante notare che qualsiasi trama singola 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 in base a blocchi all'interno della stessa trama. In altre parole, il confronto della grandezza intero senza segno di color_0 e color_1 viene eseguita in modo univoco per ogni blocco di 16 texel.

Dopo aver usato i blocchi a 128 bit, il canale alfa deve essere specificato in modalità esplicita (formato DXT2 e DXT3) o interpolato (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 alfa interpolati in base a blocchi. 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 il texturing 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