Dela via


Exempel på DDS-struktur

Använd flaggorna DDSD_PITCH och DDPF_RGB för en icke-komprimerad textur. använd flaggorna DDSD_LINEARSIZE och DDPF_FOURCC för en komprimerad textur. För en mipmapped-struktur använder du DDSD_MIPMAPCOUNT, DDSCAPS_MIPMAP och DDSCAPS_COMPLEX flaggor samt mipmap count-medlemmen. Om mipmaps genereras skrivs vanligtvis alla nivåer ned till 1 efter 1.

För en komprimerad textur är storleken på varje mipmap-nivåbild vanligtvis en fjärdedel av storleken på den föregående, med minst 8 (DXT1) eller 16 (DXT2-5) byte (för kvadratiska texturer). Använd följande formel för att beräkna storleken på varje nivå för en icke-kvadratisk struktur:

max(1, ( (width + 3) / 4 ) ) x max(1, ( (height + 3) / 4 ) ) x 8(DXT1) or 16(DXT2-5)

Den här tabellen visar mängden utrymme som tas upp av varje lager för en textur på 256 x 256 R8G8B8 utan att använda komprimering.

DDS-komponenter # Byte
rubrik 128
256 x 256 huvudbild 196608
Bild på 128 av 128 mipmap 49152
Bild av 64 x 64 mipmap 12288
Bild av 32 x 32 mipmap 3072
Bild av 16 x 16 mipmap 768
Bild av 8 av 8 mipmap 192
Bild med 4 av 4 mipmap 48
Bild med 2 av 2 mipmap 12
Bild med 1 av 1 mipmap 3

 

Den här tabellen visar mängden utrymme som tas upp av varje lager för samma struktur med hjälp av komprimering (DXT1).

DDS-komponenter # Byte
rubrik 128
256 x 64 huvudbild 8192
Bild av 128 x 32 mipmap 2048
Bild av 64 x 16 mipmap 512
Bild av 32 x 8 mipmap 128
Bild med 16 x 4 mipmap 32
Bild med 8 av 2 mipmap 16
Bild av 4 av 1 mipmap 8
Bild med 2 av 1 mipmap 8
Bild med 1 av 1 mipmap 8

 

Den här tabellen visar mängden utrymme som tas upp av varje lager för samma struktur med hjälp av ett DXGI-komprimeringsformat (i det här fallet BC3_UNORM) som därför kräver den utökade rubriken:

DDS-komponenter # Byte
header (FourCC inställd på "DX10") 128
extended header (DXGI-format inställt på DXGI_FORMAT_BC3_UNORM) 20
256 x 64 huvudbild 16384
Bild av 128 x 32 mipmap 4096
Bild av 64 x 16 mipmap 1024
Bild av 32 x 8 mipmap 256
Bild med 16 x 4 mipmap 64
Bild med 8 av 2 mipmap 32
Bild av 4 av 1 mipmap 16
Bild med 2 av 1 mipmap 16
Bild med 1 av 1 mipmap 16

 

programmeringsguide för DDS