次の方法で共有


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

 

DDS のプログラミング ガイド