複数のフレームバッファオブジェクトを使用する代わりに、1つしか作成せず、必要に応じてターゲットテクスチャを切り替えて同じ結果を得ることができますか?OpenGL:1つのフレームバッファのみを使用してターゲットテクスチャを交換する
- これはすべての場合に悪い考えですか?はいの場合、なぜですか?
私のプログラムのAPIにはrender.SetTargetTexture()
という機能が実装されていましたが、背後で使用されていたフレームバッファがもっとあれば論理的には機能しません。フレームバッファを完全に公開する必要があります。
私はこれを実際にベンチマークしたことはありませんが、異なるFBOをバインドする方が効率的です。 FBOに別のテクスチャをバインドするには、フレームバッファの完全性のための複雑な一貫性チェックが必要です(明示的に、そしてドライバの中に明示的に指定されていない場合)。変更されていない別のフレームバッファをバインドするには、そのようなことは必要ありません。 – Damon
私はそれを見る別の方法は**おそらく重要ではないと思う**。私はフレームごとに何千ものターゲットを切り替えるアプリは知らない。ほとんどのスイッチはわずか数回です。私はfbosの切り替えが添付ファイルを切り替えるよりも速くなければならないと同意しますが、あなたのAPIが問題ではない場合は問題ありません。 – gman