0

異なるハードウェア間で一貫性のない動作をする OpenGL コードがあります。私はいくつかのコードを持っています:

  1. レンダー バッファーを作成し、テクスチャをそのカラー バッファー (テクスチャ A) にバインドします。
  2. このレンダー バッファをアクティブに設定し、ビューポートなどを調整します
  3. ピクセル シェーダー (この例ではガウス ブラー) をアクティブにします。
  4. テクスチャ A を使用してクワッドをフル スクリーンに描画します。
  5. レンダバッファなどのバインドを解除します。

私の開発マシンでは、これは正常に機能し、テクスチャを「その場で」ぼかすという意図した効果がありますが、他のハードウェアでは機能しないようです。

2つの可能性に絞り込みました。

A) renderbuffer をそれ自体にレンダーすることは想定されておらず、ある種のまぐれのため​​に私の開発マシンでのみ機能します。

または

B) このアプローチは機能するはずですが、何か他の問題が発生しています。

何か案は?正直なところ、この問題に関する詳細を見つけるのに苦労しました。

4

2 に答える 2

0

特殊なケースでは、バックバッファで十分な場合もあります。glClear を実行しないだけで、以前に描画したものがそのまま残ります。もちろん、バックバッファから実際に読み取ることはできません。しかし、フェードインやフェードアウトなどの効果については、これでうまくいきます。

于 2009-03-06T09:54:44.193 に答える