Direct3D 11 でのテクスチャ ブロック圧縮

Direct3D 11 では、テクスチャのブロック圧縮 (BC) サポートが拡張され、BC6H および BC7 アルゴリズムが組み込まれています。 BC6H はハイ ダイナミック レンジのカラー ソース データをサポートし、BC7 は標準 RGB ソース データのアーティファクトを低減して標準よりも優れた品質の圧縮を提供します。

BC1 ~ BC5 形式のサポートなど、Direct3D 11 より前のブロック圧縮アルゴリズムのサポートに関する具体的な情報については、「ブロック圧縮 (Direct3D 10)」をご覧ください。

ファイル形式に関する注意: BC6H および BC7 テクスチャ圧縮形式では、圧縮テクスチャ データを格納するために DDS ファイル形式が使用されます。 詳しくは、「DDS 用プログラミング ガイド」をご覧ください。

Direct3D 11 でサポートされるブロック圧縮形式

ソース データ 最低限必要なデータ圧縮解像度 推奨形式 サポートされる最小機能レベル
3 チャネル カラーおよびアルファ チャネル 3 カラー チャネル (5 ビット:6 ビット:5 ビット)、および 0 または 1 ビットのアルファ BC1 Direct3D 9.1
3 チャネル カラーおよびアルファ チャネル 3 カラー チャネル (5 ビット:6 ビット:5 ビット)、および 4 ビットのアルファ BC2 Direct3D 9.1
3 チャネル カラーおよびアルファ チャネル 3 カラー チャネル (5 ビット:6 ビット:5 ビット)、および 8 ビットのアルファ BC3 Direct3D 9.1
1 チャネル カラー 1 カラー チャネル (8 ビット) BC4 Direct3D 10
2 チャネル カラー 2 カラー チャンネル (8 ビット:8 ビット) BC5 Direct3D 10
3 チャネル ハイ ダイナミック レンジ (HDR) カラー "半" 浮動小数点*の 3 カラー チャネル (16 ビット:16 ビット:16 ビット) BC6H Direct3D 11
3 チャネル カラー、アルファ チャネルはオプション 3 カラー チャネル (チャネルあたり 4 ~ 7 ビット)、および 0 ~ 8 ビットのアルファ BC7 Direct3D 11

*"半" 浮動小数点は、オプションの符号ビット、5 ビットのバイアス付き指数部、および 10 または 11 ビットの仮数部から成る 16 ビット値。

BC1、BC2、および B3 形式

BC1、BC2、および BC3 形式は Direct3D 9 DXTn テクスチャ圧縮形式と等価で、対応する Direct3D 10 BC1、BC2、および BC3 形式と同じです。 これら 3 つの形式のサポートは、すべての機能レベル (D3D_FEATURE_LEVEL_9_1、D3D_FEATURE_LEVEL_9_2、D3D_FEATURE_LEVEL_9_3、D3D_FEATURE_LEVEL_10_0、D3D_FEATURE_LEVEL_10_1、および D3D_FEATURE_LEVEL_11_0) で必要です。

ブロック圧縮形式 DXGI 形式 相当する Direct3D 9 の形式 4 x 4 のピクセル ブロックあたりのバイト数
BC1 DXGI_FORMAT_BC1_UNORM、DXGI_FORMAT_BC1_UNORM_SRGB、DXGI_FORMAT_BC1_TYPELESS D3DFMT_DXT1、FourCC="DXT1" 8
BC2 DXGI_FORMAT_BC2_UNORM、DXGI_FORMAT_BC2_UNORM_SRGB、DXGI_FORMAT_BC2_TYPELESS D3DFMT_DXT2*、FourCC="DXT2"、D3DFMT_DXT3、FourCC="DXT3" 16
BC3 DXGI_FORMAT_BC3_UNORM、DXGI_FORMAT_BC3_UNORM_SRGB、DXGI_FORMAT_BC3_TYPELESS D3DFMT_DXT4*、FourCC="DXT4"、D3DFMT_DXT5、FourCC="DXT5" 16

*これらの圧縮スキーム (DXT2 と DXT4) では、Direct3D 9 プリマルチプライ済みアルファ形式と標準のアルファ形式が区別されません。 これらの区別は、レンダリング時にプログラム可能なシェーダーで処理する必要があります。

BC4 および BC5 形式

ブロック圧縮形式 DXGI 形式 相当する Direct3D 9 の形式 4 x 4 のピクセル ブロックあたりのバイト数
BC4 DXGI_FORMAT_BC4_UNORM、DXGI_FORMAT_BC4_SNORM、DXGI_FORMAT_BC4_TYPELESS FourCC="ATI1" 8
BC5 DXGI_FORMAT_BC5_UNORM、DXGI_FORMAT_BC5_SNORM、DXGI_FORMAT_BC5_TYPELESS FourCC="ATI2" 16

BC6H 形式

この形式については詳しくは、「BC6H 形式」をご覧ください。

ブロック圧縮形式 DXGI 形式 相当する Direct3D 9 の形式 4 x 4 のピクセル ブロックあたりのバイト数
BC6H DXGI_FORMAT_BC6H_UF16、DXGI_FORMAT_BC6H_SF16、DXGI_FORMAT_BC6H_TYPELESS 該当なし 16

BC6H 形式では、4 x 4 のピクセル ブロックごとに異なるエンコード モードを選択できます。 全部で 14 種類のエンコード モードを利用でき、それぞれのモードには、表示されるテクスチャの画質に少しずつ異なるトレードオフがあります。 モードの選択によって、ソース コンテンツに合わせて品質レベルを選択または適合させたハードウェアで高速デコードできますが、検索領域の複雑さも大幅に増加します。

BC7 形式

この形式については詳しくは、「BC7 形式」をご覧ください。

ブロック圧縮形式 DXGI 形式 相当する Direct3D 9 の形式 4 x 4 のピクセル ブロックあたりのバイト数
BC7 DXGI_FORMAT_BC7_UNORM、DXGI_FORMAT_BC7_UNORM_SRGB、DXGI_FORMAT_BC7_TYPELESS 該当なし 16

BC7 形式では、4 x 4 のピクセル ブロックごとに異なるエンコード モードを選択できます。 全部で 8 種類のエンコード モードを利用でき、それぞれのモードには、表示されるテクスチャの画質に少しずつ異なるトレードオフがあります。 モードの選択によって、ソース コンテンツに合わせて品質レベルを選択または適合させたハードウェアで高速デコードできますが、検索領域の複雑さも大幅に増加します。

このセクションの内容

トピック 説明
BC6H 形式
BC6H 形式は、ソース データのハイ ダイナミック レンジ (HDR) 色空間をサポートするように設計されたテクスチャ圧縮形式です。
BC7 形式
BC7 形式は、RGB および RGBA データの高品質圧縮に使用される、テクスチャ圧縮形式です。
BC7 フォーマット モード リファレンス
このドキュメントには、BC7 テクスチャ圧縮形式ブロックの 8 つのブロック モードとビット割り当ての一覧が含まれています。

ブロック圧縮 (Direct3D 10)

テクスチャ