Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Problem rending shadowed scene to Framebuffer texture for post processing


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 greenzone   Members   -  Reputation: 672

Like
0Likes
Like

Posted 21 June 2013 - 09:48 PM

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

Sponsor:

#2 radioteeth   Prime Members   -  Reputation: 1103

Like
0Likes
Like

Posted 21 June 2013 - 11:15 PM

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



#3 greenzone   Members   -  Reputation: 672

Like
0Likes
Like

Posted 22 June 2013 - 07:11 AM

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


J-GREEN

Greenpanoply

#4 greenzone   Members   -  Reputation: 672

Like
0Likes
Like

Posted 22 June 2013 - 10:59 AM

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.

with Out FBO capture
FBO capture

Edited by greenzone, 22 June 2013 - 11:06 AM.

J-GREEN

Greenpanoply

#5 marcClintDion   Members   -  Reputation: 431

Like
0Likes
Like

Posted 23 June 2013 - 04:52 AM

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, because you know that the testing of your faith produces perseverance. Let perseverance finish its work so that you may be mature and complete, not lacking anything.


#6 greenzone   Members   -  Reputation: 672

Like
0Likes
Like

Posted 24 June 2013 - 06:30 AM

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, 24 June 2013 - 06:35 AM.

J-GREEN

Greenpanoply

#7 martyj2009   Members   -  Reputation: 114

Like
0Likes
Like

Posted 24 June 2013 - 09:17 AM

Could you post more code?

 

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






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS