OpenGL4.x の別々のチャネルで異なる圧縮アルゴリズムを使用して RGBA テクスチャを作成して読み取ることは可能ですか?
本当の意味のない例 A:
- RGチャンネルは、3Dc でエンコードされた法線マップを格納します
- Bチャネルには、エンコーディングを使用したテッセレーションなどの高さの値が格納されます
- チャネルは未加工のMaterialID を圧縮せずに保存します
例 B:
- RGBは DXT1 で圧縮されたマテリアル パラメータを保存します
- Aは MaterialID を圧縮せずに保存します
バックグラウンド:
15 ページと 18 ページのPhysically Based Rendering PBR (PDF)の Frostbite 実装で、著者はマテリアル パラメータをさまざまなテクスチャ チャネルにどのように構造化したかを説明しています。彼らはまた、一部のチャンネルでテクスチャ圧縮を回避したことにも言及しており、それが意味するチャンネルの詳細については触れていません。
15ページ
ディファード デカールをサポートするには、すべての基本属性 (Normal、BaseColor、Smoothness、MetalMask、Reflectance) をブレンド可能にする必要があります。MaterialId などのブレンド不可能な属性は、アルファ チャネルに格納されます。また、ブレンドの品質に影響を与える可能性のある圧縮およびエンコードのメカニズムも回避しました。
18ページ
この場合、いくつかの属性で圧縮を回避し、単純な線形補間アルファ ブレンディングに依存することを選択しました。