1
我正在使用具有顏色緩衝區附件的幀緩衝區對象來執行每像素點擊測試。我想將它渲染到屏幕上進行調試和測試,但現在我所得到的只是一個大白色的虛無。我假設我必須發送一些類似於glSwapBuffers()的渲染命令,但由於我只使用一個緩衝區,我不知道它將交換到什麼地方。是否有等同的命令只使用一個緩衝區?如何測試幀緩衝區對象是否正確渲染?
這裏是我的設置:
// Store the real framebuffer
glGetIntegerv(GL_FRAMEBUFFER_BINDING_OES, (GLint*) ®ularFbo);
// Generate an offscreen framebuffer/renderbuffer for rendering the hit detection polys
// Create framebuffer
glGenFramebuffersOES(1, &hitDetectionFbo);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, hitDetectionFbo);
// Create colorbuffer
glGenRenderbuffersOES(1, &colorBuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorBuffer);
// Create storage (RGBA) for color buffer
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGBA8_OES, SCREEN_WIDTH, SCREEN_HEIGHT);
// Attach color buffer to framebuffer
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorBuffer);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
這不標記任何glErrors但我清楚地失去了一些東西,因爲沒有什麼是出現在屏幕上我切換到我的新的FBO之後。如果我繼續使用原始幀緩衝區(通過調用glBindFramebufferOES(GL_FRAMEBUFFER_OES, regularFbo)
),該程序將渲染得很好。
感謝您的幫助, -S