2013-02-26 3 views
1

현재 프레임 버퍼는 ID와 렌더 타겟 수로 저장합니다. 그러나 프레임 버퍼로 그려 넣으려면 glDrawBuffers을 사용하여 올바른 그리기 버퍼를 설정해야합니다. 당분간 나는 이것을 이렇게한다.텍스처를 프레임 버퍼에 첨부하는 방법은 무엇입니까?

vector<GLenum> buffers; 
for(int i = 0; i < targets; ++i) 
{ 
    buffers.push_back(GL_COLOR_ATTACHMENT0 + i); 
} 
glDrawBuffers(targets, &buffers[0]); 

간단히하기 위해 더 이상 렌더링 대상을 직접 저장하지 않습니다. OpenGL은 어쨌든 그렇게 생각합니다. 프레임 첨부에 첨부 된 색상 첨부 파일을 가져 오는 방법이 있습니까? 예 : glFramebufferTexture2D 전화를 사용합니까?

답변

3

그리기 버퍼 위치는 FBO의 상태 인의 일부입니다. 그것들을 변경하지 않는다면 초기화 시간에 번을 번으로 설정해야합니다. 여기서 대상의 번호는 잘 알려 져야합니다.

그러나 첨부 파일을 쿼리하는 경우 use glGetFramebufferAttachmentParameterGL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE​으로 지정할 수 있습니다. 반환 값이 GL_NONE 인 경우 해당 바인딩 포인트에 대한 첨부 파일이 없습니다.

+0

감사합니다. 초기화 할 때 설정합니다. 그리고 심지어 당신이 그들을 질의 할 수 있다는 것을 알고 있습니다. – danijar

+2

@sharethis : OpenGL에서 * everything *을 쿼리 할 수 ​​있습니다. –

관련 문제