Direct3D 11 でのテクスチャ ブロック圧縮
テクスチャのブロック圧縮 (BC) のサポートが Direct3D 11 で拡張され、BC6H アルゴリズムと BC7 アルゴリズムが含まれています。 BC6H は高ダイナミック レンジのカラー ソース データをサポートし、BC7 は標準の RGB ソース データに対してアーティファクトを少なくして平均より優れた品質圧縮を提供します。
BC1 から BC5 形式のサポートなど、Direct3D 11 より前のブロック圧縮アルゴリズムのサポートの詳細については、「ブロック圧縮 (Direct3D 10)を参照してください。
ファイル形式に関する 注意: BC6H および BC7 テクスチャ圧縮形式では、圧縮テクスチャ データを格納するために DDS ファイル形式が使用されます。 詳細については、DDS の プログラミング ガイドを参照してください。
Direct3D 11 でサポートされているブロック圧縮形式
ソース データ | 最低限必要なデータ圧縮の解決 | 推奨される形式 | サポートされる最小機能レベル |
---|---|---|---|
アルファ チャンネルを使用した 3 チャネルの色 | アルファの 0 ビットまたは 1 ビットを持つ 3 つのカラー チャネル (5 ビット:6 ビット:5 ビット) | BC1 | Direct3D 9.1 |
アルファ チャンネルを使用した 3 チャネルの色 | 4 ビットのアルファを持つ 3 つのカラー チャネル (5 ビット:6 ビット:5 ビット) | BC2 | Direct3D 9.1 |
アルファ チャンネルを使用した 3 チャネルの色 | 8 ビットのアルファを持つ 3 つのカラー チャネル (5 ビット:6 ビット:5 ビット) | 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 チャンネル カラー、アルファ チャネル (省略可能) | 0 ~ 8 ビットのアルファを持つ 3 つのカラー チャネル (チャネルあたり 4 ~ 7 ビット) | BC7 | Direct3D 11 |
*"Half" 浮動小数点は、省略可能な符号ビット、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 | N/A | 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 | N/A | 16 |
BC7 形式では、4 x 4 ピクセル ブロックごとに異なるエンコード モードを選択できます。 合計 8 つの異なるエンコード モードを使用できます。それぞれ、表示されるテクスチャの表示品質に若干異なるトレードオフがあります。 モードの選択により、ソース コンテンツに応じて選択または調整された品質レベルでハードウェアによる高速デコードが可能になりますが、検索スペースの複雑さが大幅に増加します。
このセクションでは、次の操作を行います。
話題 | 形容 |
---|---|
BC6H 形式の |
BC6H 形式は、ソース データの高ダイナミック レンジ (HDR) カラー スペースをサポートするように設計されたテクスチャ圧縮形式です。 |
BC7 形式の |
BC7 形式は、RGB および RGBA データの高品質な圧縮に使用されるテクスチャ圧縮形式です。 |
BC7 フォーマット モードリファレンス |
このドキュメントには、BC7 テクスチャ圧縮フォーマット ブロックの 8 つのブロック モードとビット割り当ての一覧が含まれています。 |