次の方法で共有


DDS キューブ マップの例

3 次環境マップの場合、キューブの 1 つ以上の面が圧縮されていない形式または圧縮形式を使用してファイルに書き込まれ、すべての面が同じサイズである必要があります。 各面にはミップマップを定義できますが、すべての面に同じ数のミップマップ レベルが必要です。 ファイルにキューブ マップが含まれている場合は、DDSCAPS_COMPLEX、DDSCAPS2_CUBEMAP、および 1 つ以上の DSCAPS2_CUBEMAP_POSITIVEX/Y/Z および/または DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z を設定する必要があります。 顔は、正の x、負の x、正の y、負の y、正の z、負の z の順に書き込まれ、欠落している顔は省略されます。 各面にはメイン画像が書き込まれ、その後にミップマップ レベルが続きます。

たとえば、正の x、負の y、正の z 面、DXT1 のピクセル形式、すべてのミップマップ レベルを持つ 256 x 256 キューブ マップには、次のものが含まれます。

DDS コンポーネント # バイト数
ヘッダ 128
256×256 正の x 面メイン画像 32768
128x128の正のX軸ミップマップ画像 8192
64×64 正の x 面ミップマップ画像 2048
32×32 正の x 面ミップマップ画像 512
16×16 正の x 面ミップマップ画像 128
8×8 正の x 面ミップマップ画像 32
4×4 正の x 面ミップマップ画像 8
2×2 正の x 面ミップマップ画像 8
1×1 正の x 面ミップマップ画像 8
y ミップマップ画像に対して前の 9 つのレイヤーを繰り返す 43704
z ミップマップ画像に対して前の 9 つのレイヤーを繰り返す 43704

 

DirectX 8 以降では、キューブ マップは、すべての面が定義された状態で格納されます。

DXGI キューブ マップ

Direct3D 10.x および Direct3D 11 の立方環境マップは、6 つの画像を含む 2D テクスチャ配列と同等であり、DDS ファイルに格納できます。 Direct3D 10.1 と Direct3D 11 では、6 つの画像 (6、12、18、24 など) の倍数を持つ 2D テクスチャ配列であるキューブマップの配列をハードウェアでサポートすることもできます。

たとえば、2D テクスチャ配列として BC6H 形式で格納されたミップマップ レベルを持つ 256 x 256 キューブマップを次に示します。

DDS コンポーネント # バイト数
ヘッダー ("DX10" の FourCC) 128
拡張ヘッダー (DXGI 形式が 95 [DXGI_FORMAT_BC6H_UF16]、ディメンション値が 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D]、配列サイズが 1、その他のフラグが 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE] に設定されている) 20
256×256 配列項目 0 (正の x 面) メイン画像 65536
128×128 配列項目 0 (正の x 面) ミップマップ画像 16384
64×64 配列項目 0 (正の x 面) ミップマップ画像 4096
32×32 配列項目 0 (正の x 面) ミップマップ画像 1024
16×16 配列項目 0 (正の x 面) ミップマップ画像 256
8×8 配列項目 0 (正の x 面) ミップマップ画像 64
4×4 配列項目 0 (正の x 面) ミップマップ画像 16
2×2 配列項目 0 (正の x 面) ミップマップ画像 16
1×1 配列項目 0 (正の x 面) ミップマップ画像 16
配列エントリ 1 (負の x) ミップマップ画像に対して前の 9 つのレイヤーを繰り返す 87408
配列エントリ 2 (正の y) ミップマップ画像に対して、前の 9 つのレイヤーを繰り返します 87408
配列エントリ 3 (負の y) ミップマップ画像に対して前の 9 つのレイヤーを繰り返す 87408
配列エントリ 4 (正の z) ミップマップ画像に対して、前の 9 つのレイヤーを繰り返します 87408
配列エントリ 5 (負の z) ミップマップ画像に対して前の 9 つのレイヤーを繰り返す 87408

 

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