DDS 紋理範例
針對未壓縮的紋理,請使用DDSD_PITCH和DDPF_RGB旗標;針對壓縮紋理,請使用DDSD_LINEARSIZE和DDPF_FOURCC旗標。 針對 mipmapped 紋理,請使用DDSD_MIPMAPCOUNT、DDSCAPS_MIPMAP和DDSCAPS_COMPLEX旗標以及 mipmap 計數成員。 如果產生 mipmap,通常會寫入向下到 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 元件 | # 位元組 |
---|---|
header | 128 |
256 by-256 主要映射 | 196608 |
128-by-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 元件 | # 位元組 |
---|---|
header | 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 |
相關主題