次の方法で共有


DDS キューブ マップの例

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

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

DDS コンポーネント # バイト数
header 128
256 x 256 x メインの正の画像 32768
128 x 128 個の正のミップマップ画像 8192
64 x 64 x 正のミップマップ画像 2048
32 x 32 個の正のミップマップ画像 512
16 x 16 個の正のミップマップ画像 128
8 x 8 x の正のミップマップ画像 32
4 x 4 x 正のミップマップ画像 8
2 x 2 x 正のミップマップ画像 8
1 x 1 x の正のミップマップ画像 8
y mipmap イメージに対して前の 9 つのレイヤーを繰り返す 43704
z mipmap イメージに対して前の 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 バイ 256 キューブマップを次に示します。

DDS コンポーネント # バイト数
ヘッダー ("DX10" の FourCC) 128
拡張ヘッダー (DXGI 形式が 95 [DXGI_FORMAT_BC6H_UF16]、ディメンション値が 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D]、配列サイズが 6、その他のフラグが 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256 x 256 配列エントリ 0 (正の x) メイン画像 65536
128 by-128 配列エントリ 0 (正の x) mipmap イメージ 16384
64 x 64 配列エントリ 0 (正の x) ミップマップ画像 4096
32 x 32 配列エントリ 0 (正の x) ミップマップ画像 1024
16 x 16 配列エントリ 0 (正の x) ミップマップ画像 256
8 x 8 配列エントリ 0 (正の x) ミップマップ画像 64
4 x 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) mipmap イメージに対して前の 9 つのレイヤーを繰り返す 87408

 

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