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 つのブロック モードとビット割り当ての一覧が含まれています。 |