Sign in to follow this  
c-mos

multipass shader and glBlitFramebufferEXT, help

Recommended Posts

c-mos    129
Hello, what is glBlitFramebufferEXT used for ? I did a glow/bloom shader (multipass). So I rendered the object into two textures (color_attachments) using FBO's with 3 color-attachments. 0 and 1 for the bloom shader and 2 for the original object. Then i blurred the texture 0 and at the end i draw two fullscreenquads One with the original object from texture 2 and one with the blurred texture (texture 0). I blend texture 0 over the quad that has been textured with the original object. but i cant see any geometry drawn after the fullscreen quads. Thats why they are the closest to the camera, of course. so, can this problem be solved by using glBlitFramebufferEXT ? My idea is, when i render the original object into texture i also save the depthbuffer in a texture as a back up. then when i draw the to fullsreen quads i restore the depthbuffer from texture so that i can see geometry that has been drawn after the fullscreen quads. Is that the correct way or absolutely nonsense ? If yes, can someone tell me how this works more in detail ? And if its the wrong way, maybe some can me tell the right way. thanks c-mos

Share this post


Link to post
Share on other sites
zedz    291
its used to copy data (fast) from one FBO to another (including the main framebuffer)
IIRC there are restrictions with depth targets though, eg they must be the same size
If u have the depth info stored as a texture though theres no need to worry about glBlitFramebuffer as u can instead just draw the depthtexture into the scene as a fullscreen sized quad.

Share this post


Link to post
Share on other sites
c-mos    129
Thank you,
anyway i found another solution. (maybe not the correct way)
I use more texture i can render to. So when drawing begins i active the render to texture mode. In the first texture i draw all objects.. In the second texture i draw objects that have to glow. If they dont have to glow i also draw them into texture 2 but i set their color to 0 and alpha to 0 as well. In my glow shader i "igonore" pixels with alpha 0. That means, I multiply the color value in my shader with the alpha value. And whether its 1 or 0. At the end i draw a fullscreen quad with the origina l objects and then blend over the glowed texture.

But back to the depth buffer story. When i create my fbo i also create a renderbuffer and add this with depthcomponent to the fbo. how can i write
the stored depthbuffer into the framebuffer ? or do i need a framebuffer instead of a renderbuffer but with the parameter depth_component ?

greetings,
cmos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this