J'utilise un objet framebuffer avec une pièce jointe tampon de couleur pour effectuer des tests de hit par pixel. Je voudrais le rendre à l'écran pour le débogage et les tests mais maintenant tout ce que je reçois est un grand néant blanc. Je suppose que je dois envoyer une commande de rendu similaire à glSwapBuffers(), mais comme je n'utilise qu'un seul tampon, je ne sais pas à quoi cela correspondrait. Y at-il une commande équivalente pour utiliser un seul tampon?Comment puis-je tester si mon objet framebuffer est correctement rendu?
Voici ma configuration:
// 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);
Ce ne signale aucun glErrors mais je manque clairement quelque chose, car rien n'apparaît à l'écran après je passe à mon nouveau OIR. Le programme rendra très bien si je continue à utiliser le framebuffer original (via un appel glBindFramebufferOES(GL_FRAMEBUFFER_OES, regularFbo)
).
Merci pour l'aide, S