DDS テクスチャの例
非圧縮テクスチャの場合は、DDSD_PITCHフラグとDDPF_RGB フラグを使用します。圧縮テクスチャの場合は、DDSD_LINEARSIZEフラグとDDPF_FOURCCフラグを使用します。 mipmapped テクスチャの場合は、DDSD_MIPMAPCOUNT、DDSCAPS_MIPMAP、およびDDSCAPS_COMPLEXフラグ、およびミップマップカウントメンバーも使用します。 ミップマップが生成される場合、通常、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 x 256 R8G8B8 テクスチャの各レイヤーで占有される領域の量を示しています。
DDS コンポーネント | # バイト数 |
---|---|
ヘッダ | 128 |
256 バイ 256 メイン画像 | 196608 |
128 x 128 ミップマップ画像 | 49152 |
64 x 64 ミップマップ画像 | 12288 |
32 x 32 ミップマップ画像 | 3072 |
16 x 16 ミップマップ画像 | 768 |
8 x 8 ミップマップ画像 | 192 |
4 バイ 4 ミップマップ画像 | 48 |
2 バイ 2 ミップマップ画像 | 12 |
1 バイ 1 ミップマップ画像 | 3 |
次の表は、圧縮 (DXT1) を使用して同じテクスチャに対して各レイヤーが占有する領域の量を示しています。
DDS コンポーネント | # バイト数 |
---|---|
ヘッダ | 128 |
256 バイ 64 メイン画像 | 8192 |
128 x 32 ミップマップ画像 | 2048 |
64 x 16 ミップマップ画像 | 512 |
32 x 8 ミップマップ画像 | 128 |
16 x 4 ミップマップ画像 | 32 |
8 x 2 のミップマップ画像 | 16 |
4 バイ 1 ミップマップ画像 | 8 |
2 バイ 1 ミップマップ画像 | 8 |
1 バイ 1 ミップマップ画像 | 8 |
次の表は、DXGI 圧縮形式 (この場合はBC3_UNORM) を使用して、同じテクスチャに対して各レイヤーが占有する領域の量を示しています。そのため、拡張ヘッダーが必要です。
DDS コンポーネント | # バイト数 |
---|---|
ヘッダー (FourCC を "DX10" に設定) | 128 |
拡張ヘッダー (DXGI 形式を DXGI_FORMAT_BC3_UNORM に設定) | 20 |
256 バイ 64 メイン画像 | 16384 |
128 x 32 ミップマップ画像 | 4096 |
64 x 16 ミップマップ画像 | 1024 |
32 x 8 ミップマップ画像 | 256 |
16 x 4 ミップマップ画像 | 64 |
8 x 2 のミップマップ画像 | 32 |
4 バイ 1 ミップマップ画像 | 16 |
2 バイ 1 ミップマップ画像 | 16 |
1 バイ 1 ミップマップ画像 | 16 |
関連トピック
-
DDS の プログラミング ガイド