I am trying to create post processing affects to a frame buffer texture that i am applying to a quad that covers screen. I have set it up and it works just fine as far as rendering to that texture but the problem I am having is that the texture that is generated is pixelated and it also looks over exposed as far as the lighting. I am not sure if its the filtering i am choosing but it looks like there are no smoothed edges on all of the geometry. I would think because it is capturing the scene exactly it would look exactly like what is behind the quad but it does not. here is my code i used to set up the frame buffer and also i will attach an image of what i am talking about. in the image the larger portion is the actual scene being rendered and then the smaller portion is the textured quad. any ideas on this would be quite helpful thinks.
//------------------------------------------------------- create a renderbuffer objects to store texture info
//glGenTextures(1, &fbotex);///----------------------------------------------- creating one color texture buffer
glBindTexture(GL_TEXTURE_2D, tex);///----------------------------------------------- bind target with buffer
glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
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_RGB, g_windowWidth, g_windowHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
glBindTexture(GL_TEXTURE_2D, 0);
////--------------------------------------------------------- create a renderbuffer object to store depth info
glGenRenderbuffers(1, &rboId);///------------------------------------------------------ depth buffer
glBindRenderbuffer(GL_RENDERBUFFER, rboId);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, g_windowWidth, g_windowHeight);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
// create a framebuffer object
glGenFramebuffers(1, &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
// attach the texture to FBO color attachment point
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0);
// attach the renderbuffer to depth attachment point
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboId);
// check if frame buffer was completed successfully
GLenum status;
status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
switch(status) {
case GL_FRAMEBUFFER_UNDEFINED:
cerr << "FRAMEBUFFER_UNDEFINED."<< endl;
break;
case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
cerr << "Frame buffer format not supported."<< endl;
break;
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
cerr << "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"<< endl;
break;
case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER:
cerr << "FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"<< endl;
break;
case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER:
cerr << "FRAMEBUFFER_INCOMPLETE_READ_BUFFER"<< endl;
break;
case GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
cerr << "FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"<< endl;
break;
case GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS:
cerr << "FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"<< endl;
break;
case GL_FRAMEBUFFER_COMPLETE:
cerr << "Framebuffer is complete!!!!"<< endl;
break;
case GL_FRAMEBUFFER_UNSUPPORTED:
cerr << "FRAMEBUFFER_UNSUPPORTED"<< endl;
break;
default:
cerr << "Framebuffer Error."<< endl;
}
// switch back to window-system-provided framebuffer
glBindFramebuffer(GL_FRAMEBUFFER, 0);
checkGlErrors();
I would also like to add that I am using 2 point lights for my lighting.