• Advertisement
Sign in to follow this  

Problem rending shadowed scene to Framebuffer texture for post processing

This topic is 1669 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have been tearing my hair out over this issue for a while now. I have created a scene with shadows and they work beautifully. I have also created an Ambient Occlusion shader that works beautifully. I am trying to combine the two affects. the problem is when I try to capture the final rendering pass that displays the geometry with shadows to a frame-buffer texture, the image it produces looks as though the the depth testing is off. If i just render it with out the framebuffer it looks perfect. but when i try to use the GL_COLOR_ATTACHMENT0 it looks all jacked up. All the vertz look backwards in rendering order. would any one have an idea why this is happening?

 

this is how i am setting up my render shodowed scene to framebuffer.

 

 

    glBindFramebufferEXT(GL_FRAMEBUFFER, FBO1);
    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, ShadowImageBuffer, 0);

 

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glEnable(GL_DEPTH_TEST);

 

//Render scene with shaddows implemented

 

    glDisable(GL_DEPTH_TEST);

glBindFramebuffer(GL_FRAMEBUFFER, 0);

 

 

//ShadowImageBuffer is what i pass to the fragment shader to then apply to a 2dfront quad. this method has worked fine before but with out this depth issue. im not sure what i am doing wrong. I should not that the shadowing are there in the final image it just that every thing looks like there is no depth testing when i display the ShadowImageBuffer texture.

Share this post


Link to post
Share on other sites
Advertisement

Here are some images that will help explain the problem. the first is the rending of the shodowed scene with out passing to a framebuffer. the second is the texture produced by the frame buffer capture. as you can see it looks as if the depth testing is not enabled but it is so i am not sure why it is capturing the scene like this and why it looks fine with out trying to use the framebuffer.

[sharedmedia=gallery:images:4021]
[sharedmedia=gallery:images:4022]
Edited by greenzone

Share this post


Link to post
Share on other sites

The FBO initialization looks like this.

 

where set globally is the GLuint FBO1;

 

glGenFramebuffers(1,&FBO1);

 

and for clarification the shadow mapping works fine. it just has the depth problem when i am trying to render the scene (while shadow mapping is enabled) to the Frame buffer.

 

 

Is there an issue in general where one cant capture applied shaddows to a framebuffer color_attachment with out having depth test issues ?

Edited by greenzone

Share this post


Link to post
Share on other sites

Could you post more code?

 

Code that you use to draw both the shadow and the ambient occlusion depth map.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement