2010-12-31 7 views
0

텍스처를 오프 스크린 프레임 버퍼에 그리려하고 렌더링 버퍼가 항상 완전히 비어 있습니다 (검정색). 이상한 점은 컨텍스트가 설정되어 있고 glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES) 및 glGetError()를 사용하여 오류를 확인하지만 어느 함수도 문제가 없다고 말합니다. 무슨 일이 일어나고 있는지 알 수있는 다른 오류 검사 기능이 있습니까?iPhone에서 OpenGL ES 1.1 텍스처 문제 해결

답변

1

자세한 정보없이 정확한 답변을 드릴 수 없습니다. 렌더링 버퍼의 설정 및 사용법에 대한 코드를 게시 할 수 있습니까? 한편

, 여기에 대한 몇 가지 정보를 얼마나 제대로 설정 오프 스크린 프레임 버퍼에 :이 도움이

// Remember the FBO being used for the display framebuffer 
glGetIntegerv(GL_FRAMEBUFFER_BINDING_OES, (GLint *)&SystemFBO); 

// Create the texture and the FBO for offscreen frame buffer 
glGenTextures(1, &ResultTexture); 
glBindTexture(GL_TEXTURE_2D, ResultTexture); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); 
glGenFramebuffersOES(1, &ResultFBO); 
glBindFramebufferOES(GL_FRAMEBUFFER_OES, ResultFBO); 
glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, ResultTexture, 0); 

glBindFramebufferOES(GL_FRAMEBUFFER_OES, ResultFBO); 

// do your rendering to offscreen framebuffer 
... 

// restore original frame buffer object 
glBindFramebufferOES(GL_FRAMEBUFFER_OES, SystemFBO); 

// use ResultTexture as usual 
glBindTexture(GL_TEXTURE_2D, ResultTexture); 

희망 ...

+0

감사합니다. 나는 문제가 glGetError() 또는 glCheckFramebufferStatusOES (GL_FRAMEBUFFER_OES)에 의해보고되지 않은 일부 내부 OpenGL 오류라고 생각했지만, OpenGL을 잘못 사용하고있었습니다. 프로그램의 이전 지점에서 glColor4f (0, 0, 0, 0)를 호출 했으므로 텍스처를 그릴 때 alpha = 0으로 그렸습니다. 나는 이것이 매뉴얼을 처음 읽는 것이 어느 정도 시간을 절약했을 것이라고 생각한다. – emchristiansen

관련 문제