Loading article…
フレームバッファオブジェクト(FBO)は、テクスチャバッファへのレンダリングを含む、オフスクリーンバッファへの柔軟なレンダリングを可能にするOpenGLの拡張機能です。画像をまずオフスクリーンバッファにレンダリングし、エフェクトを適用してからオンスクリーンバッファに送信することで、さまざまな画像フィルタや後処理エフェクトを実装できます。
FBOは、その効率性と使いやすさからOpenGLで広く使用されています。FBOを使用することで、OpenGLの描画コンテキスト切り替えに伴うオーバーヘッドが発生しないため、コンテキスト切り替えを使用するpbufferなどの手法に取って代わるようになりました。
FBOはDirectXのレンダーターゲットモデルに類似しています。
FBOには主に2つの用途があります。レンダリングされた画像のポストプロセス処理と、異なるシーン間の合成です。いくつかの例を挙げます。
FBOを用いた方法は、以下の理由から優れていると考えられています。
FBOを使用するには、そのインスタンスを作成するだけです。FBOにはいくつかのアタッチメントが付属しています。これらを、選択したレシーバー(テクスチャまたはレンダーバッファ)にアタッチできます。FBOは複数のカラーアタッチメントポイント(GL_COLOR_ATTACHMENT0以降)を公開でき、アプリケーションは通常、レンダリングする前に、選択したアタッチメントセットがフレームバッファに完全であることを確認します。[ 1 ]
例えば: