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 le funzioni D3DX per la conversione in e dai formati compressi. Tuttavia, queste informazioni sono utili se si vuole operare direttamente sui dati di superficie compressi.

Direct3D usa un formato di compressione che divide le mappe della trama in blocchi texel 4x4. Se la trama non contiene alcuna trasparenza, è opaca o se la trasparenza è specificata da un alfa a 1 bit, un blocco a 8 byte rappresenta il blocco mappa trama. Se la mappa della trama 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 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.

Quando vengono usati blocchi a 128 bit, il canale alfa deve essere specificato in modalità esplicita (formato DXT2 o DXT3) o interpolato (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 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.

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

Risorse trama compresse