So far I've succeeded in creating my framebuffer object and target texture based on the example block at the bottom of http://www.songho.ca...gl/gl_fbo.html. After that, I've attempted various configurations of drawing what I want to the texture, but all I can seem to manage is to draw an opaque quad to it. I can't seem to get depth, alpha blending, or even texture mapping to work properly (no matter how I map the texture coords, the result is the same). glClear(GL_COLOR_BUFFER_BIT) on the texture causes my whole scene to get messed up, as well. The following code demonstrates how I'm trying to set up rendering to the texture:
glPushMatrix();
// set rendering destination to FBO
glBindFramebuffer(GL_FRAMEBUFFER, 92);
glViewport(0,0,screen_width, screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// Clearing buffers
glClearDepth(1.0f);
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_DEPTH_BUFFER_BIT); // Clearing the GL_COLOR_BUFFER_BIT causes things to break
// Set up internal rendering projection
glOrtho(-0.5 * width, 0.5*width, -1, 1, 1, 0);
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
// Set blend func
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
// Draw stuff here! At the moment just trying to draw a couple overlapping quads as a proof of concept
// Unbind fbo
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glPopMatrix();
// Set scene-relative blending function.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // function for blending
// Draw the rendered texture on top of the underlying scene
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, 90);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0f); glVertex3f(-0.1,-0.1,0.01); // Bottom-Left Vertex
glTexCoord2f(1.0f, 0.0f); glVertex3f(0.1,-0.1,0.01); // Bottom-Right Vertex
glTexCoord2f(1.0f, 1.0f); glVertex3f(0.1,0.1,0.01); // Top-Right Vertex
glTexCoord2f(0.0f, 1.0f); glVertex3f(-0.1,0.1,0.01); // Top-Left Vertex
glEnd();
glDisable(GL_TEXTURE_2D);
Any help is greatly appreciated!