アルファ付きのBC7テクスチャは、アルファなしのBC7と同じサイズです

つまり、テクスチャを作成しました。BC7圧縮を使用してRGBテクスチャを保存しました。次に、さまざまなレベルのグレースケールでアルファチャネル[鏡面反射マップ]を追加し、BC7圧縮を使用してファイルをRGBAとして再度保存しました。結果のファイルのサイズはアルファなしのファイルと同じですが、追加情報-アルファチャネルが含まれています。どうすれば可能ですか?私が理解しているように、ケーキを持って食べることはできないので、同じサイズを確保するために妥協点はありますか?

IntelDDSプラグインでフォトショップを使用しています。

回答

BC7は常に4つのチャネルを効果的にエンコードします。これは、フォーマットの性質の一部です。アルファをオンにすると、コンプレッサーはソースイメージのアルファ値を読み取って使用しますが、それだけです。

BC7は各4x4を圧縮するため、特定のサイズのすべてのBC7圧縮イメージは同じサイズになります。テクセルを128ビットにグループ化します。ただし、同じ品質があるわけではありません。

BC7は適応型エンコーディング形式です。各ブロックのサイズは固定されていますが(空間的およびビット単位の両方)、各ブロックには、ブロックが実際に圧縮するチャネルの数と、それらが相互に相関する方法が格納されます。 の詳細は複雑ですが、一般的な利点は、コンプレッサーが特定のブロックに最適な圧縮方法をブロックごとに把握することです。コンプレッサーがブロックを見て、すべてのテクセルのアルファが1.0であることがわかる場合、128ビットのうち、より多くのビットを色に費やし、より少ないビットをアルファに費やすことができます。

このように、テクスチャ"アルファなし"は、すべてのテクセルのアルファが1である、アルファ付きのテクスチャとまったく同じです。これらのブロックは、その大部分を消費します。テクセルの非アルファ部分のビット。"モード"フィールドで数ビットを無駄にしているだけです。アルファは定数1.0です。

これは、テクスチャのアルファが変化しているが、その一部が一定のアルファを持っている場合、BC7はこれらの一定のアルファ領域をより少ないビットでエンコードできることを意味します。改善されたカラーエンコーディングにビットを費やすことができます。

2つの圧縮スイッチのバイト数が同じであるため、問題があると感じることはありません。

回答

ここにarがありますBCn形式に関する記事:クリックしてください。このサイトで非常に活発なネイサン・リードによって書かれています。そのため、この記事ではあなたが知る必要のあるすべてのことを説明していると思いますが、彼はおそらく通りかかって、あなたの質問にもっと詳細に答えるかもしれません。

あなたの質問に最も関連する部分は、記事:

BCは「ブロック圧縮」の略で、BCn形式はすべて次の点で機能します。ピクセルの4×4ブロック。すべての画像はこれらの小さなブロックにスライスされ、各ブロックは自己完結型です。デコードするデータはすべて、メモリ内の1つの連続したチャンクにあります。 。さらに、各圧縮ブロックのサイズは固定されています。使用されているBCn形式に応じて、8バイトまたは16バイトになります。これは、ソース画像が8ビットRGBA形式の場合、4:1または8:1の圧縮率を表します。

ピクセルがカウントは変更されず、テクスチャのサイズも変更されません。ただし、使用するチャネルが多いほど( MicrosoftのドキュメントによるとBC7でサポートされているのは3と4のみ)、カラーチャネルごとに保存できる情報は少なくなります。ブロック。これは、RGBの代わりにRGBAを使用すると、圧縮により多くの情報が失われることを意味します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です