0

圧縮されたテクスチャは読み取れず、カラー レンダリングもできないと読みました。許可されていない理由についてはある程度の考えがありますが、詳細を説明できる人がいます。

それが読めないということは、正確にはどういう意味ですか。イメージロードなどを使用してシェーダーでそれらから読み取ることができませんか? または、それらからサンプリングすることさえできませんか?

レンダリングできないとはどういう意味ですか? とにかくユーザーがすべてのゴミを見るので、許可されていないからですか。

圧縮テクスチャの使用は試していません。

4

2 に答える 2

2

圧縮されたテクスチャは、その用語の最も有用な定義によると、「読み取り可能」です。サンプラーを介してそれらから読み取ることができます。ただし、それらに対して操作を使用することはできませんimageLoad。なんで?そのようなメモリの読み取りは、単純なメモリ フェッチではないためです。大量のメモリをフェッチし、解凍操作を実行する必要があります。

圧縮された画像はカラー レンダリングできません。つまり、圧縮された画像を FBO にアタッチしてレンダー ターゲットとして使用することはできません。この理由は明らかだと思うかもしれませんが、必要に応じて説明してください。圧縮された画像に書き込むには、その場で画像圧縮を行う必要があります。また、ほとんどのテクスチャ圧縮形式 (またはあらゆる種類の圧縮形式) は、いくつかの値の変更を簡単に処理できるようには設計されていません。言うまでもなく、ほとんどの圧縮テクスチャ フォーマットは非可逆であるため、解凍/書き込み/再圧縮操作を行うたびに、画像の忠実度が失われます。

于 2015-12-29T01:08:26.673 に答える
1

OpenGL Wikiから:

カラー形式であるにも関わらず、圧縮された画像は明らかな理由でカラーレンダリングできません。したがって、圧縮されたイメージをフレームバッファ オブジェクトにアタッチすると、その FBO が不完全になり、使用できなくなります。同様の理由で、レンダバッファの内部フォーマットとして圧縮フォーマットを使用することはできません。

したがって、「カラーレンダリング不可」とは、FBO で使用できないことを意味します。

「読めない」とはどういう意味かわかりません。それらを FBO にバインドして FBO から読み取ることができないことを意味する場合があります (そもそも FBO にバインドできないため)。

于 2014-08-08T23:51:30.137 に答える