Condividi tramite


Formati di texture compressi

Questa sezione contiene informazioni sull'organizzazione interna dei formati di texture compressi. Questi dettagli non sono necessari per usare texture compresse, perché è possibile usare le funzioni Direct3D per la conversione da e verso formati compressi. Queste informazioni, tuttavia, sono utili se si desidera operare direttamente su dati di superficie compressi.

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

Qualsiasi texture singola deve specificare che i relativi dati vengano archiviati come 64 o 128 bit per gruppo di 16 texel. Se i blocchi a 64 bit, ovvero il formato BC1, vengono usati per la texture, è possibile combinare i formati alfa a 1 bit e opachi in base a ogni blocco all'interno della stessa texture. In altre parole, il confronto della grandezza dell'intero senza segno 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 BC2) o interpolata (formato BC3) per l'intera texture. Come con il colore, quando si seleziona la modalità interpolata, è possibile usare la modalità a otto o a sei alfa interpolati per ogni singolo blocco. Anche in questo caso, il confronto di grandezza di alpha_0 e alpha_1 viene eseguito in modo univoco per ogni singolo blocco.

Il pitch per i formati BCn è misurato in byte (non blocchi). Ad esempio, se si ha una larghezza pari a 16, si avrà un pitch di quattro blocchi (4*8 per BC1, 4*16 per BC2 o BC3).

Risorse texture compresse