Dela via


Exempel på DDS-kubkarta

För kubikmiljökartor kan en eller flera sidor av en kub skrivas till filen i antingen okomprimerade eller komprimerade format, och alla sidor måste vara av samma storlek. Varje ansikte kan ha mipmaps definierade, även om alla ansikten måste ha samma antal mipmap-nivåer. Om en fil innehåller en kubkarta ska DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP och en eller flera DSCAPS2_CUBEMAP_POSITIVEX/Y/Z och/eller DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z anges. Ansiktena skrivs i ordningen: positiv x, negativ x, positiv y, negativ y, positiv z, negativ z, med eventuella saknade ansikten utelämnade. Varje ansikte skrivs med sin huvudbild, följt av tillhörande mipmap-nivåer.

Till exempel skulle en 256 x 256 kubkarta med positiva x, negativa y- och positiva z-ansikten, ett pixelformat av DXT1 och alla mipmap-nivåer innehålla följande:

DDS-komponenter # Byte
rubrik 128
256 gånger 256 positiv x-axel huvudbild 32768
128 x 128 positiv x mipmap-bild 8192
64 x 64 positiv mipmap-bild 2048
32 gånger 32 positiv X mipmap-bild 512
16 x 16 positiv x mipmap-bild 128
8 gånger 8 positiv x mipmap-bild 32
4 x 4 positiv x mipmap-bild 8
2 gånger 2 pixlar stor positiv mipmapbild 8
1 x 1 positiv x mipmap-bild 8
upprepa de föregående 9 lagren för y mipmap-bilden 43704
upprepa de tidigare 9 lagren för z mipmap-bilden 43704

 

Från och med DirectX 8 lagras en kubkarta med alla ansikten definierade.

DXGI-kubkartor

Kubikmiljökartor i Direct3D 10.x och Direct3D 11 motsvarar en 2D-strukturmatris med 6 bilder och kan lagras i DDS-filer som sådana. Med Direct3D 10.1 och Direct3D 11 kan maskinvaran också stödja matriser med kubkartor som själva är 2D-strukturmatriser med flera av 6 bilder (6, 12, 18, 24 osv.).

Här är till exempel en 256 x 256 kubkarta med mipmap-nivåer lagrade i ett BC6H-format som en 2D-strukturmatris:

DDS-komponenter # Byte
header (FourCC av "DX10") 128
extended header (DXGI format set to 95 [DXGI_FORMAT_BC6H_UF16], dimensionens värde av 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], arraystorleken 1, diverse flaggor 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256 × 256 matriselement 0 (positiv x) huvudbild 65536
128 x 128 array-element 0 (positivt x) mipmap-bild 16384
64 x 64 fält 0 (positivt x) mipmap-bild 4096
32 x 32 matrispost 0 (positiv x) mipmap-bild 1024
16 x 16 matrispost 0 (positiv x) mipmap-bild 256
8 x 8 matriselement 0 (positiv x-axel) mipmap-bild 64
4 gånger 4 matrispost 0 (positiv x) mipmap-bild 16
2x2-fältselement 0 (positivt x-värde) mipmap-bild 16
1 x 1 matriselement 0 (positiv x) mipmap-bild 16
upprepa de tidigare 9 lagren för matrispost 1 (negativ x) mipmap-bild 87408
Upprepa de tidigare 9 lagren för matrisinträde 2 (positiv y) mipmap-bild. 87408
upprepa föregående 9 lager för matrispost 3 (negativ y) mipmap-bild 87408
upprepa de tidigare 9 lagren för matrispost 4 (positiv z) mipmap-bild 87408
upprepa föregående 9 lager för matrispost 5 (negativ z) mipmap-bild 87408

 

programmeringsguide för DDS