複数のフレームバッファ オブジェクトを使用する代わりに、1 つだけ作成し、必要に応じてターゲット テクスチャを切り替えることで同じ結果を得ることができますか?
- これはすべての場合に悪い考えですか?はいの場合、なぜですか?
私はrender.SetTargetTexture()
自分のプログラムの API に関数を実装してきましたが、バックグラウンドで使用されるフレームバッファがこれ以上あると論理的に機能しません。その場合、フレームバッファを完全に公開する必要があります。
複数のフレームバッファ オブジェクトを使用する代わりに、1 つだけ作成し、必要に応じてターゲット テクスチャを切り替えることで同じ結果を得ることができますか?
私はrender.SetTargetTexture()
自分のプログラムの API に関数を実装してきましたが、バックグラウンドで使用されるフレームバッファがこれ以上あると論理的に機能しません。その場合、フレームバッファを完全に公開する必要があります。
FBO 自体は、実装によって維持される単なる論理構造であり、そのパラメーターが必要とするわずかなメモリしか消費しません。FBO の主な目的は、一貫した状態を維持するオブジェクトを持つことです。
FBO の構造に変更を加えるたびに、実装は有効性と完全性をチェックする必要があります。OpenGL 仕様では、この操作の複雑さについては何も述べていませんが、FBO の構造への変更が最も時間のかかる操作であると想定しても問題ありません (おそらく大幅な差で)。
FBO 自体はそれほどメモリを消費しないため、メモリを消費するのは添付ファイルのみで、これは独立したオブジェクトであるため、複数の FBO を割り当ててそれらを切り替えることをお勧めします。