ボリューム テクスチャの DDS ファイルのレイアウト

ボリューム テクスチャの DDS ファイルのレイアウト

ボリューム テクスチャは、Microsoft® DirectX® 9.0 の標準テクスチャの拡張で、ミップマップを使って定義することもミップマップを使わずに定義することもできる。ファイルにボリューム テクスチャが含まれる場合は、DDSCAPS_COMPLEX、DDSCAPS2_VOLUME、DDSD_DEPTH、dwDepth を設定する必要がある。ミップマップを使用しないボリュームについては、各深度スライスが順番にファイルに書き込まれる。ミップマップを含む場合は、特定のミップマップ レベルに対する深度スライスがすべてまとめて書き込まれる。各レベルに含まれるスライスの数は前のレベルの 2 分の 1 であり、その最小数は 1 である。DirectX 9.0 の時点で、ボリューム テクスチャは DXTn 圧縮をサポートしていない。

たとえば、R8G8B8 (ピクセルあたり 3 バイト) というピクセル フォーマットで、すべてのミップマップ レベルを持つ、64 × 64 × 4 のボリューム マップには、次のものが含まれる。

"DDS", 
(64, 64, 4),
(pitch=768),128 バイト
(pixel format=R8G8B8, bitcount=24), 
(mipmapcount=7),
(DEPTH, TEXTURE, PITCH, COMPLEX, MIPMAP, VOLUME, RGB)
4 スライス中のスライス 1 の 64 × 64 メイン イメージ。12288 バイト
4 スライス中のスライス 2 の 64 × 64 メイン イメージ。12288 バイト
4 スライス中のスライス 3 の 64 × 64 メイン イメージ。12288 バイト
4 スライス中のスライス 4 の 64 × 64 メイン イメージ。12288 バイト
2 スライス中のスライス 1 の 32 × 32 ミップマップ イメージ。3072 バイト
2 スライス中のスライス 2 の 32 × 32 ミップマップ イメージ。3072 バイト
1 スライス中のスライス 1 の 16 × 16 ミップマップ イメージ。768 バイト
1 スライス中のスライス 1 の 8 × 8 ミップマップ イメージ。192 バイト
1 スライス中のスライス 1 の 4 × 4 ミップマップ イメージ。48 バイト
1 スライス中のスライス 1 の 2 × 2 ミップマップ イメージ。12 バイト
1 スライス中のスライス 1 の 1 × 1 ミップマップ イメージ。4 バイト