共用方式為


DDS 紋理範例

針對未壓縮的紋理,請使用DDSD_PITCH和DDPF_RGB旗標;對於壓縮紋理,請使用DDSD_LINEARSIZE和DDPF_FOURCC旗標。 若為 mipmapped 紋理,請使用DDSD_MIPMAPCOUNT、DDSCAPS_MIPMAP和DDSCAPS_COMPLEX旗標,以及 mipmap 計數成員。 如果產生Mipmap,則通常會寫入所有層級到1到1到1。

對於壓縮紋理,每個Mipmap層級影像的大小通常是前一個大小的四分之一,最小為8(DXT1) 或16位元組 (DXT2-5) 位元組(針對方形紋理)。 使用下列公式來計算非方形紋理的每個層級大小:

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

下表列出每個圖層針對 256 by-256 R8G8B8 紋理佔用的空間量,而不使用壓縮。

DDS 元件 # 位元組
頁眉 128
256 by-256 主要影像 196608
128 位元組 128 mipmap 影像 49152
64 by-64 mipmap 影像 12288
32-by-32 mipmap 影像 3072
16 by-16 mipmap 影像 768
8-by-8 mipmap 影像 192
4-by-4 mipmap 影像 48
2-by-2 mipmap 影像 12
1-by-1 mipmap 影像 3

 

下表列出每個圖層使用壓縮 #DXT1 針對相同紋理佔用的空間量。

DDS 元件 # 位元組
頁眉 128
256 by-64 主要影像 8192
128-by-32 mipmap 影像 2048
64 by-16 mipmap 影像 512
32 by-8 mipmap 影像 128
16 by-4 mipmap 影像 32
8-by-2 mipmap 影像 16
4-by-1 mipmap 影像 8
2-by-1 mipmap 影像 8
1-by-1 mipmap 影像 8

 

下表列出每個圖層使用 DXGI 壓縮格式(在此案例中為BC3_UNORM)所佔用的空間量,因此需要延伸標頭:

DDS 元件 # 位元組
標頭 (FourCC 設定為 “DX10”) 128
擴充標頭 (DXGI 格式設定為 DXGI_FORMAT_BC3_UNORM) 20
256 by-64 主要影像 16384
128-by-32 mipmap 影像 4096
64 by-16 mipmap 影像 1024
32 by-8 mipmap 影像 256
16 by-4 mipmap 影像 64
8-by-2 mipmap 影像 32
4-by-1 mipmap 影像 16
2-by-1 mipmap 影像 16
1-by-1 mipmap 影像 16

 

DDS 程式設計指南