5

OpenGL4.x の別々のチャネルで異なる圧縮アルゴリズムを使用して RGBA テクスチャを作成して読み取ることは可能ですか?

本当の意味のない例 A:

  1. RGチャンネルは、3Dc でエンコードされた法線マップを格納します
  2. Bチャネルには、エンコーディングを使用したテッセレーションなどの高さの値が格納されます
  3. チャネルは未加工のMaterialID を圧縮せずに保存します

例 B:

  1. RGBは DXT1 で圧縮されたマテリアル パラメータを保存します
  2. Aは MaterialID を圧縮せずに保存します

バックグラウンド:

15 ページと 18 ページのPhysically Based Rendering PBR (PDF)の Frostbite 実装で、著者はマテリアル パラメータをさまざまなテクスチャ チャネルにどのように構造化したかを説明しています。彼らはまた、一部のチャンネルでテクスチャ圧縮を回避したことにも言及しており、それが意味するチャンネルの詳細については触れていません。

15ページ

ディファード デカールをサポートするには、すべての基本属性 (Normal、BaseColor、Smoothness、MetalMask、Reflectance) をブレンド可能にする必要があります。MaterialId などのブレンド不可能な属性は、アルファ チャネルに格納されます。また、ブレンドの品質に影響を与える可能性のある圧縮およびエンコードのメカニズムも回避しました。

18ページ

この場合、いくつかの属性で圧縮を回避し、単純な線形補間アルファ ブレンディングに依存することを選択しました。

4

1 に答える 1

1

異なるチャネルで異なる圧縮を持つテクスチャを読み取るための OpenGL またはハードウェア サポートはありません。もちろん、このような手作りのテクスチャを個別のテクスチャに分割し、これらを個別に解凍するプリパスを作成することもできます。

Nicol Bolas が示唆したように、Frostbite PBR の実装は混合による圧縮を回避します。

于 2016-09-22T06:07:48.020 に答える