2013-08-18 5 views
1

opengl 씬에는 전체 장면 (색상 및 깊이)을 렌더링하는 패스와 첫 번째 패스에서 깊이 버퍼가 필요한 일부 장면 객체 만 렌더링하는 두 개의 패스가 있습니다.여러 FBO에 동일한 렌더 버퍼 바인딩하기

두 개의 프레임 버퍼 객체 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

두 개의 프레임 버퍼 개체 FBO1과 FBO2를 사용하고 동일한 깊이의 렌더 버퍼를 둘 다 바인딩 할 수 있습니까?

예. 이것은 가능합니다. 그러나 한 번에 하나의 렌더링 버퍼 또는 텍스처가 주어진 FBO의 여러 첨부 파일에서 렌더링 대상이되어서는 안됩니다.

+2

* 동일한 * FBO에 여러 개의 첨부 파일이 있다는 뜻입니까? –

+0

@ 니콜 볼라스 : 물론. 나는 이것을 명확하게하기 위해 나의 대답을 편집했다. – datenwolf

+0

그래서 다른 하나를 렌더링 타겟으로 사용하면서 그것에 쓰는 동안 FBO 중 하나를 사용하여 깊이 버퍼를 읽을 수 있습니까? – Cheeku

관련 문제