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 |
相關主題