DDS テクスチャの例
非圧縮テクスチャの場合は、DDSD_PITCH フラグと DDPF_RGB フラグを使用します。圧縮テクスチャの場合は、DDSD_LINEARSIZE フラグと DDPF_FOURCC フラグを使用します。 mipmapped テクスチャの場合は、DDSD_MIPMAPCOUNT、DDSCAPS_MIPMAP、およびDDSCAPS_COMPLEXフラグと、mipmap count メンバーも使用します。 ミップマップが生成される場合、通常、1 対 1 までのすべてのレベルが書き込まれます。
圧縮テクスチャの場合、各ミップマップ レベル イメージのサイズは通常、前のサイズの 4 分の 1 です。最小 8 (DXT1) または 16 (DXT2-5) バイト (正方形のテクスチャの場合) です。 次の数式を使用して、非正方形テクスチャの各レベルのサイズを計算します。
max(1, ( (width + 3) / 4 ) ) x max(1, ( (height + 3) / 4 ) ) x 8(DXT1) or 16(DXT2-5)
次の表は、圧縮を使用せずに、256 バイ 256 R8G8B8 テクスチャの各レイヤーによって占有される領域の量を示しています。
DDS コンポーネント | # バイト数 |
---|---|
header | 128 |
256 by-256 メイン イメージ | 196608 |
128 by-128 mipmap イメージ | 49152 |
64 バイ 64 ミップマップ画像 | 12288 |
32 バイ 32 ミップマップ 画像 | 3072 |
16 バイ 16 ミップマップ画像 | 768 |
8 バイ 8 ミップマップ画像 | 192 |
4 バイ 4 ミップマップ 画像 | 48 |
2 バイ 2 mipmap イメージ | 12 |
1 バイ 1 ミップマップ イメージ | 3 |
次の表は、圧縮 (DXT1) を使用して同じテクスチャの各レイヤーによって占有される領域の量を示しています。
DDS コンポーネント | # バイト数 |
---|---|
header | 128 |
256 by-64 メイン イメージ | 8192 |
128 バイ 32 mipmap イメージ | 2048 |
64 バイ 16 ミップマップ画像 | 512 |
32 バイ 8 ミップマップ 画像 | 128 |
16 バイ 4 ミップマップ画像 | 32 |
8 バイ 2 mipmap イメージ | 16 |
4 バイ 1 ミップマップ 画像 | 8 |
2 バイ 1 mipmap イメージ | 8 |
1 バイ 1 ミップマップ イメージ | 8 |
次の表は、DXGI 圧縮形式 (この場合はBC3_UNORM) を使用して、同じテクスチャに対して各レイヤーによって占有される領域の量を示しています。そのため、拡張ヘッダーが必要です。
DDS コンポーネント | # バイト数 |
---|---|
ヘッダー (FourCC を "DX10" に設定) | 128 |
拡張ヘッダー (DXGI 形式を DXGI_FORMAT_BC3_UNORM に設定) | 20 |
256 by-64 メイン イメージ | 16384 |
128 バイ 32 mipmap イメージ | 4096 |
64 バイ 16 ミップマップ画像 | 1024 |
32 バイ 8 ミップマップ 画像 | 256 |
16 バイ 4 ミップマップ画像 | 64 |
8 バイ 2 mipmap イメージ | 32 |
4 バイ 1 ミップマップ 画像 | 16 |
2 バイ 1 mipmap イメージ | 16 |
1 バイ 1 ミップマップ イメージ | 16 |
関連トピック