void SetUpFBO()
{
PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT=(PFNGLGENFRAMEBUFFERSEXTPROC)wglGetProcAddress("glGenFramebuffersEXT");
PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT=(PFNGLBINDFRAMEBUFFEREXTPROC)wglGetProcAddress("glBindFramebufferEXT");
PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT=(PFNGLGENRENDERBUFFERSEXTPROC)wglGetProcAddress("glGenRenderbuffersEXT");
PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT=(PFNGLBINDRENDERBUFFEREXTPROC)wglGetProcAddress("glBindRenderbufferEXT");
PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT=(PFNGLRENDERBUFFERSTORAGEEXTPROC)wglGetProcAddress("glRenderbufferStorageEXT");
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT=(PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)wglGetProcAddress("glFramebufferRenderbufferEXT");
PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT=(PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)wglGetProcAddress("glFramebufferTexture2DEXT");
PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT=(PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)wglGetProcAddress("glCheckFramebufferStatusEXT");
PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT=(PFNGLGENERATEMIPMAPEXTPROC)wglGetProcAddress("glGenerateMipmapEXT");
int width=256;int height=256;
glGenFramebuffersEXT(1, &fbo);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
glGenRenderbuffersEXT(1, &depthbuffer);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, depthbuffer);
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, width, height);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer);
glGenTextures(1, &img);
glBindTexture(GL_TEXTURE_2D, img);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, img, 0);
GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
//render
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
glPushAttrib(GL_VIEWPORT_BIT);
glViewport(0,0,width, height);
glClearColor(1.0f,1.0,0.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
glPopAttrib();
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
//end render
glGenerateMipmapEXT(GL_TEXTURE_2D);
glGenTextures(1, &img);
glBindTexture(GL_TEXTURE_2D, img);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glGenerateMipmapEXT(GL_TEXTURE_2D);
}
FBO rendering problems
Hi, I'm having some problems with an FBO. It always render white. I have already done almost anything and it doesn't work
Here is where i set up my fbo:
[Edited by - Megatron90 on February 7, 2010 8:45:17 AM]
I can't quite grasp what is going here, you have rendering code inside the SetupFBO(), and at the end you are overwriting the texture for the FBO?
I was clearing(red) the FBO:
later when I draw in "DrawGLScene" I use that.
glBindTexture(GL_TEXTURE_2D, img);
but the cube is still white.
[Edited by - Megatron90 on February 7, 2010 8:22:22 AM]
//renderglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);glPushAttrib(GL_VIEWPORT_BIT);glViewport(0,0,width, height);glClearColor(1.0f,1.0,0.0f,1.0f);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth BufferglPopAttrib();glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);//end render
later when I draw in "DrawGLScene" I use that.
glBindTexture(GL_TEXTURE_2D, img);
but the cube is still white.
[Edited by - Megatron90 on February 7, 2010 8:22:22 AM]
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement