次の方法で共有


圧縮テクスチャ形式 (Direct3D 9)

このセクションには、圧縮テクスチャ形式の内部編成に関する情報が含まれています。 D3DX 関数を使用して圧縮形式との間で変換できるため、圧縮テクスチャを使用するためにこれらの詳細は必要ありません。 ただし、この情報は、圧縮されたサーフェス データを直接操作する場合に役立ちます。

Direct3D は、テクスチャ マップを 4 x 4 テクセル ブロックに分割する圧縮形式を使用します。 テクスチャに透明度が含まれている場合(不透明)、または透明度が 1 ビットアルファで指定されている場合、8 バイトブロックはテクスチャ マップ ブロックを表します。 テクスチャ マップに透明なテクセルが含まれている場合は、アルファ チャネルを使用して、16 バイトのブロックが表します。

1 つのテクスチャでは、データが 16 テクセルのグループごとに 64 ビットまたは 128 ビットとして格納されるように指定する必要があります。 テクスチャに 64 ビット ブロック (つまり DXT1 の形式) が使用されている場合、同じテクスチャ内でブロック単位で不透明形式と 1 ビットアルファ形式を混在させることが可能です。 つまり、color_0とcolor_1の符号なし整数の大きさの比較は、16 テクセルのブロックごとに一意に実行されます。

128 ビット ブロックを使用する場合、テクスチャ全体に対してアルファ チャネルを明示的 (DXT2 または DXT3 形式) または補間モード (DXT4 または DXT5 の形式) で指定する必要があります。 色と同様に、補間モードを選択すると、ブロック単位で 8 つの補間アルファまたは 6 つの補間アルファ モードを使用できます。 ここでも、alpha_0とalpha_1の大きさの比較は、ブロックごとに一意に行われます。

DXTn 形式のピッチは、DirectX 7.0 で返されたものとは異なります。 ピッチは、ブロックではなくバイト単位で測定されるようになりました。 たとえば、幅が 16 の場合、ピッチは 4 ブロックになります (DXT1 の場合は 4*8、DXT2-5 の場合は 4*16)。

圧縮テクスチャ リソース する