Condividi tramite


Formati di trama compressi (Direct3D 9)

Questa sezione contiene informazioni sull'organizzazione interna dei formati di trama compressi. Questi dettagli non sono necessari per usare trame compresse, perché è possibile usare funzioni D3DX per la conversione da e verso formati compressi. Tuttavia, queste informazioni sono utili se si desidera operare direttamente sui dati di superficie compressi.

Direct3D usa un formato di compressione che divide le mappe delle trame in blocchi di texel 4x4. Se la trama non contiene trasparenza, è opaca o se la trasparenza è specificata da un alfa a 1 bit, un blocco a 8 byte rappresenta il blocco della mappa delle trame. Se la mappa delle trame contiene texel trasparenti, usando un canale alfa, un blocco a 16 byte lo rappresenta.

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 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.

Quando si usano blocchi a 128 bit, il canale alfa deve essere specificato in modalità esplicita (formato DXT2 o DXT3) o interpolata (formato DXT4 o DXT5) per l'intera trama. Come per il colore, quando viene selezionata la modalità interpolata, è 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.

Il passo per i formati DXTn è diverso da quello restituito in DirectX 7.0. Il passo viene ora misurato in byte (non blocchi). Ad esempio, se si ha una larghezza pari a 16, si avrà un passo di quattro blocchi (4*8 per DXT1, 4*16 per DXT2-5).

risorse di trama compresse