problems with a framebuffer object

2 messages Options
Embed this post
Permalink
Dan Wilcox

problems with a framebuffer object

Reply Threaded More More options
Print post
Permalink
Howdy,

Is anyone using frame buffer objects within Equalizier?  I haven't used them before and my attempts so far have all failed.  After following several different tutorials, reading the openGL reference over and over, and testing working code from friends, I cannot correctly set up the fbo and keep getting a GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT error.  Is there something special I need to do to utilize fbos?

I noticed fbo support was added for Equalizer 0.9 and I've tried the svn version, but still the same problem.  Do I need to specify the fbo in the config file before I can create one using the GL functions?  I noticed the eq::Texture and eq::FrameBufferObject classes in 0.9, are these the preferred method?

The eq::FBO relys on using the current GLEW context which I assume needs to be set before using the fbo usage calls.  I'm using a layer on top of Equalizer that does not expose the eq headers or namespace since other libs may use their own GLEW/GLEE.  So far, doing anything GL related occurs within callbacks run by either a Window or Channel method, so the GLEW context should already have been set.

I'm using Eq 0.6 and will upgrade to 0.9 once it's officially released.

Thanks for any help ...
Stefan Eilemann

Re: [eq-dev] problems with a framebuffer object

Reply Threaded More More options
Print post
Permalink
Hi Dan,

On Tue, Aug 4, 2009 at 2:32 PM, Dan Wilcox (via
Nabble)<[hidden email]> wrote:

> Is anyone using frame buffer objects within Equalizier?  I haven't used them
> before and my attempts so far have all failed.  After following several
> different tutorials, reading the openGL reference over and over, and testing
> working code from friends, I cannot correctly set up the fbo and keep
> getting a GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT error.  Is there
> something special I need to do to utilize fbos?

No, there is nothing special for Equalizer, aside from the typical
quirks of FBOs.

> I noticed fbo support was added for Equalizer 0.9 and I've tried the svn
> version, but still the same problem.  Do I need to specify the fbo in the
> config file before I can create one using the GL functions?

No. The config file support is to create off-screen rendering for
windows or channels, very similar to PBuffers. This is only mildly
useful since on WGL and GLX you need a hidden window to create your
context for the FBO creation.

1-window.DFR.eqc is a nice example of this, where the source rendering
happens in an FBO.

>  I noticed the
> eq::Texture and eq::FrameBufferObject classes in 0.9, are these the
> preferred method?

They definitely make your life easier, but one is allowed to use the
normal GL functions as well. If you want to use auxiliary FBO's to
render some passes off-screen, you can use the FBO class. Have a look
at roiFinder.cpp for usage (or read the API documentation).


> The eq::FBO relys on using the current GLEW context which I assume needs to
> be set before using the fbo usage calls.

You have to pass the GLEWContext to the constructor of the FBO. You
can get it from the window, or you directly use the window's
ObjectManager to allocate the fbo for you.


HTH,

Stefan.