次の方法で共有


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 プログラミング ガイド