次の方法で共有


BC7 フォーマット モード リファレンス

このドキュメントには、BC7 テクスチャ圧縮フォーマット ブロックの 8 つのブロック モードとビット割り当ての一覧が含まれています。

ブロック内の各サブセットの色は、2 つの明示的なエンドポイント の色と、それらの間の補間された色のセットによって表されます。 ブロックのインデックスの有効桁数に応じて、各サブセットの色は 4、8、または 16 にすることができます。

モード 0

BC7 モード 0 には、次の特性があります。

  • カラー コンポーネントのみ (アルファなし)
  • ブロックあたり 3 つのサブセット
  • エンドポイントごとに一意の P ビットを使用する RGBP 4.4.4.1 エンドポイント
  • 3 ビット インデックス
  • 16 個のパーティション

モード 0 ビット レイアウト

モード 1

BC7 モード 1 には、次の特性があります。

  • カラー コンポーネントのみ (アルファなし)
  • ブロックあたり 2 つのサブセット
  • サブセットごとに共有 P ビットを使用する RGBP 6.6.6.1 エンドポイント)
  • 3 ビット インデックス
  • 64 個のパーティション

モード 1 ビット レイアウト

モード 2

BC7 モード 2 には、次の特性があります。

  • カラー コンポーネントのみ (アルファなし)
  • ブロックあたり 3 つのサブセット
  • RGB 5.5.5 エンドポイント
  • 2 ビット インデックス
  • 64 個のパーティション

モード 2 ビット レイアウト

モード 3

BC7 モード 3 には、次の特性があります。

  • カラー コンポーネントのみ (アルファなし)
  • ブロックあたり 2 つのサブセット
  • RGBP 7.7.7.1 エンドポイントと、サブセットごとに一意の P ビット)
  • 2 ビット インデックス
  • 64 個のパーティション

モード 3 ビット レイアウト

モード 4

BC7 モード 4 には、次の特性があります。

  • 個別のアルファ コンポーネントを持つカラー コンポーネント
  • ブロックあたり 1 つのサブセット
  • RGB 5.5.5 カラー エンドポイント
  • 6 ビットアルファ エンドポイント
  • 16 x 2 ビット インデックス
  • 16 x 3 ビット インデックス
  • 2 ビット コンポーネントの回転
  • 1 ビット インデックス セレクター (2 ビットインデックスと 3 ビット インデックスのどちらを使用するか)

モード 4 ビット レイアウト

モード 5

BC7 モード 5 には、次の特性があります。

  • 個別のアルファ コンポーネントを持つカラー コンポーネント
  • ブロックあたり 1 つのサブセット
  • RGB 7.7.7 カラー エンドポイント
  • 8 ビットのアルファ エンドポイント
  • 16 x 2 ビット カラー インデックス
  • 16 x 2 ビット アルファ インデックス
  • 2 ビット コンポーネントの回転

モード 5 ビット レイアウト

モード 6

BC7 モード 6 には、次の特性があります。

  • 色とアルファのコンポーネントを組み合わせたもの
  • ブロックごとに 1 つのサブセット
  • RGBAP 7.7.7.7.1 カラー (およびアルファ) エンドポイント (エンドポイントごとに一意の P ビット)
  • 16 x 4 ビット インデックス

モード 6 ビット レイアウト

モード 7

BC7 モード 7 には、次の特性があります。

  • 色とアルファのコンポーネントを組み合わせたもの
  • ブロックあたり 2 つのサブセット
  • RGBAP 5.5.5.5.1 カラー (およびアルファ) エンドポイント (エンドポイントごとに一意の P ビット)
  • 2 ビット インデックス
  • 64 個のパーティション

モード 7 ビット レイアウト

備考

モード 8 (最下位バイトは 0x00 に設定) が予約されています。 エンコーダーでは使用しないでください。 このモードをハードウェアに渡すと、すべてのゼロに初期化されたブロックが返されます。

BC7 では、次のいずれかの方法でアルファ コンポーネントをエンコードできます。

  • 明示的なアルファ コンポーネント エンコードを使用しないブロック型。 これらのブロックでは、カラー エンドポイントには RGB のみのエンコードがあり、アルファ コンポーネントはすべてのテクセルに対して 1.0 にデコードされます。

  • カラーコンポーネントとアルファコンポーネントを組み合わせたブロックタイプ。 これらのブロックでは、エンドポイントの色の値が RGBA 形式で指定され、アルファ コンポーネントの値が色の値と共に補間されます。

  • 色とアルファのコンポーネントが分離されたブロック型。 これらのブロックでは、色とアルファの値は個別に指定され、それぞれに独自のインデックス セットが含まれます。 その結果、有効なベクトルとスカラー チャネルが個別にエンコードされます。ここで、ベクターは一般的にカラー チャネル [R, G, B] を指定し、スカラーはアルファ チャネル [A] を指定します。 この方法をサポートするために、エンコードには個別の 2 ビット フィールドが用意されています。これにより、個別のチャネル エンコードをスカラー値として指定できます。 その結果、ブロックは、このアルファ エンコードの次の 4 つの異なる表現のいずれかを持つことができます (2 ビット フィールドで示されます)。

    • RGB|A: アルファ チャネル分離
    • AGB|R: "red" カラー チャネルセパレート
    • RAB|G: "緑" カラー チャネル分離
    • RGA|B: "青" カラー チャネル分離

    デコーダーはデコード後にチャネルの順序を RGBA に戻すため、内部ブロック形式は開発者には見えません。 色とアルファのコンポーネントが異なるブロックには、ベクトル化されたチャネルのセット用とスカラー チャネル用の 2 つのインデックス データ セットもあります。 (モード 4 の場合、これらのインデックスは幅 [2 または 3 ビット] が異なります。モード 4 には、ベクトルまたはスカラー チャネルが 3 ビット インデックスを使用するかどうかを指定する 1 ビット セレクターも含まれています)。

BC7 形式の