3

私の opengl シーンには 2 つのパスがあります。1 つはシーン全体 (色と深度) をレンダリングするパスで、もう 1 つは一部のシーン オブジェクトのみをレンダリングするパスで、最初のパスの深度バッファーが必要です。

2 つのフレームバッファ オブジェクト FBO1 と FBO2 を使用し、同じ深度レンダバッファをそれらの両方にバインドすることは可能ですか? そのための疑似コードは次のようになります。

// ---------- Initialization ---------- 
// create 'FBO1'
// create render buffer 'RB'
// bind RB to FBO1
// bind TEXTURE1 to FBO1 for color rendering

// create FBO2
// bind RB to FBO2
// bind TEXTURE2 to FBO2 for color rendering

// ---------- Rendering frame---------- 
// bind FBO1
// render entire scene with depth writing enabled
// bind FB2
// render some objects again with depth mask GL_EQUAL

その結果、TEXTURE2 には、最初のパスでレンダリングされた他のオブジェクトによって遮られていないオブジェクトの部分のみが含まれます。

4

1 に答える 1

6

2 つのフレームバッファ オブジェクト FBO1 と FBO2 を使用し、同じ深度レンダバッファをそれらの両方にバインドすることは可能ですか?

はい、これは完全に可能です。ただし、1 つのレンダー バッファーまたはテクスチャを、特定の FBO 内の複数のアタッチメントで同時にレンダー ターゲットにすることはできません。

于 2013-08-18T20:12:20.167 に答える