Platform SDK: DirectX

圧縮したテクスチャ フォーマット

ここでは、圧縮したテクスチャ フォーマットの内部組織について説明する。圧縮したテクスチャを使用する場合、DirectDraw が圧縮したテクスチャ間の変換を処理するため、これらの情報を詳しく知る必要はない。しかし、圧縮したサーフェスデータを直接処理する場合は、この情報が役立つはずである。

DirectDraw では、テクスチャ マップを 4 × 4 のテクセル ブロックに分割するために圧縮フォーマットを使用する。テクスチャに透過性が含まれない場合 (不透明)、または透過性が 1 ビット アルファで指定される場合、8 バイト ブロックがテクスチャ マップ ブロックを現す。テクスチャ マップに透過型テクセルが含まれない場合、アルファ チャネルを使用して 16 バイト ブロックがテクスチャ マップ ブロックを現す。

この 2 つのフォーマットについては、次のセクションで説明する。

 :  あらゆる単一のテクスチャでは、16 テクセルのグループごとに 64 ビットまたは 128 ビットとして格納されるデータを指定しなくてはならない。64 ビット ブロック (つまり、フォーマット DXT1) がテクスチャ用に使用される場合、いくつかのテクスチャのブロックごとに不透明と 1 ビット アルファ フォーマットを組み合わせることができる。つまり、色 0 と色 1 の符号なし整数の大きさの比較は、16 テクセルの各ブロックごとに実行される。

128 ビット ブロックを使用する場合、テクスチャ全体にアルファ チャネルを明示的 (フォーマット DXT2 または DXT3) または補間したモード (フォーマット DXT4 または DXT5) で指定しなくてはならない。色も同様に、補間したモードが 8 の補間したアルファか、ブロックを基に使用される 6 の補間したアルファモードのどちらかを選択されることに注意すること。さらに、アルファ 0 とアルファ 1 の大きさの比較は、ブロックごとに行われる。