OpenGL de プログラミング - FrameBufferObject
現在地 >> メニュー >> 基本編10 >> FrameBufferObject
関連VertexBufferObjectPixelBufferObject


framebufferについて


カラーバッファ」、「デプスバッファ」、「ステンシルバッファ」、「アキュムレーションバッファ」が
OpenGLで利用されている「フレームバッファ」である。
一般にこれらは
window-system-provided framebuffer」(※ウィンドウシステムが提供するフレームバッファ)
と呼ばれる。


これに対し、「FBO」は非表示可能な「フレームバッファオブジェクト」であり、
application-created framebuffer」(※アプリケーションが作成するフレームバッファ)
と呼ばれ、「window-system-provided framebuffer」と同様のバッファを持つ。
(ただし「アキュムレーションバッファ」はない)

なお、FBOではそれら論理的なバッファは「framebuffer-attachable images」と呼ばれている。
(※フレームバッファと関連付けを行う事ができる2次元配列のようなもの)


FBO(framebuffer object)を使う事で、出力先を「window-system-provided framebuffer」から切り替える事ができる。


framebuffer-attachable images


「framebuffer-attachable images」には
  • texture images
  • renderbuffer images
の2種類がある。

これは、
「texture images」がフレームバッファと関連付けられる ⇒ 「テクスチャへのレンダリング」
「renderbuffer images」がフレームバッファと関連付けられる ⇒ 「オフスクリーンレンダリング」
となる。




関連付けられる個数はグラフィックカード次第。
上図のように、FBO自体は何かメモリストレージを持っているわけではない。
単なる関連付けのために用いられる。

つまり、テクスチャオブジェクトやレンダーバッファオブジェクトを作成(メモリ用意)して
それをFBOに関連付ける。

手順

サンプルコード