2011-11-04 4 views
2

誰かが同じであると指摘できますか?私はそれについての情報を読んでいると、このレッドブックは、ここでフレームバッファ/カラーバッファ?

は「カラーバッファ自体は、いくつかのsubbuffersで構成することができます。システム上のフレームバッファは、これらのバッファのすべての構成」と言うように、その後フレームバッファをhere

をされることを意味します実際のバッファで構成される仮想バッファ?(奥行き/ステンシルなど)

答えて

6

フレームバッファには、深度、ステンシル、色、および累積バッファが(多くの場合)含まれます。カラーバッファは最も重要な部分ですが、1つの部分だけです。より多くのカラーバッファを作成することができ、OpenGLでさらにフレームバッファを作成することもできます。

「バーチャルフレームバッファ」とは、画面に描画されないフレームバッファを意味することもあります(たとえば、ディスクに書き込まれる、またはテクスチャとして使用されるなど)。私はこの用語がOpenGLではなくX11固有のものだと考えています。

+0

だから、階層的に言ってフレームバッファは常に異なるバッファのスーパーセットのようです。バーチャルでは、私は実際のバッファー自体(物理的に)そのようなものではないことを意味しました。例えば、国連はすべての国のグループですが、国連のような国はありません。 – Manish

+1

フレームバッファは実数で、カラーバッファも実数です。カナダが本物と同じように、オンタリオ州も現実的です。 –

5

あなたが本当にこれをgrokしたい場合は、OpenGL Framebuffer Objectsをご覧ください。 FBOは「オフスクリーン」レンダリングターゲットです。つまり、あなたの画像をディスプレイに表示する代わりに、別の場所、FBOにレンダリングします。これを行うには、FBOを作成して設定する必要があります。その構成の一部は、レンダリングされた画像のピクセルごとの色情報を保持するバッファであるカラーアタッチメントを追加することです。たぶんそこに止まっているかもしれないし、深さの添付を追加しているかもしれません。 3Dジオメトリをレンダリングしていて、それを正しく表示したい場合は、があり、この奥行きの添付を追加することになります。

実際、良い実験です。シンプルな3Dキューブをスクリーンにレンダリングする小さなOpenGLプログラムを作成します。その作業が完了したら、レンダリング先をという設定のFBOに変更します。はカラーアタッチメントです。おそらく、OpenGLにはレンダリング中に奥行き情報を格納する場所がないため、正しく表示されません。ブーム!すべてが同じ深さになります。ここで、FBOに深度アタッチメントを追加して、レンダリングがどのように変化するかを確認してください。

スクリーンフレームバッファが基本的にはデフォルトのセットアップFBOであると考えると、フレームバッファが複数のバッファで構成されていることは明らかです。