Problem rending shadowed scene to Framebuffer texture for post processing

Started by
5 comments, last by martyj2009 10 years, 10 months ago

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.

J-GREEN

Greenpanoply
Advertisement

do another glClear after binding the default framebuffer (to draw the shadowimagebuffer). fingers are crossed ;)

I gave that a try and I am still having the problem unfortunately.

J-GREEN

Greenpanoply

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]
J-GREEN

Greenpanoply

What's the FBO initialization look like?

The PowerVR SDK has a shadow mapping sample that can help you with the proper setup.

http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp

Consider it pure joy, my brothers and sisters, whenever you face trials of many kinds, 3 because you know that the testing of your faith produces perseverance. 4 Let perseverance finish its work so that you may be mature and complete, not lacking anything.

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 ?

J-GREEN

Greenpanoply

Could you post more code?

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

This topic is closed to new replies.

Advertisement