[osg-submissions] FrameBuffer AntiAliasing with OSG 2.5

Michael Platings mplatings at pixelpower.com
Fri Jun 6 09:40:01 PDT 2008


Hi Paul,
Glad it's working, the error hasn't narrowed things down at all though. Can you add
assert(!glError());
before and after every gl call in RenderStage.cpp and FrameBufferObject.cpp? I presume it will assert after one of the gl calls - can you let me know what the function arguments were that caused the assert?

Re: setMultisampleResolveFramebufferObject(), it should be called whenever setFrameBufferObject() is called with a multisample framebuffer.



-----Original Message-----
From: osg-submissions-bounces at lists.openscenegraph.org [mailto:osg-submissions-bounces at lists.openscenegraph.org] On Behalf Of paul1492 at yahoo.com
Sent: 06 June 2008 15:39
To: OpenSceneGraph Submissions
Subject: Re: [osg-submissions] FrameBuffer AntiAliasing with OSG 2.5

Partly my fault (I've now fixed)... I'm now getting what looks like a "correct" image, but I'm still getting the
Warning: detected OpenGL error 'invalid value' after RenderBin::draw(,)
RenderStage::drawInner(,) FBO status= 0x8cd5 When I turn on ONCE_PER_ATTRIBUTE, I'm getting:
Warning: detected OpenGL error 'invalid value' after applying attribute Viewport 0x8272600...
Also, when I was saying "don't know the purpose of", I was refering to the fact that I didn't see this method being called anywhere.

Paul P.

----- Original Message ----
From: Michael Platings <mplatings at pixelpower.com>
To: OpenSceneGraph Submissions <osg-submissions at lists.openscenegraph.org>
Sent: Friday, June 6, 2008 7:27:35 AM
Subject: Re: [osg-submissions] FrameBuffer AntiAliasing with OSG 2.5

Hi Paul,
I've made some changes so my submission is closer to your submission:
- Samples and color samples now go in Camera::Attachment
- I've fixed the compiler warnings you reported

As you say you don't know the purpose of RenderStage::setResolveFramebufferObject() then I suspect that may be the source of your error. Therefore I have changed the function name to setMultisampleResolveFramebufferObject and reworded its comment which I hope will make its purpose clear.
In brief, if you're setting up the RenderStage directly (rather than via Camera::attach()) then do:
renderStage->setFrameBufferObject(my_multisampled_fbo);
renderStage->setMultisampleResolveFramebufferObject(my_NON_multisampled_
renderStage->fbo);

I've been running the osgdistortion example with all Camera Attachments set up with samples 16 and colorSamples 4 and haven't seen any warnings or errors.
The error you reported is too vague. The framebuffer status 0x8cd5 is GL_FRAMEBUFFER_COMPLETE_EXT so there's nothing wrong there. If after switching to the latest changes you still get errors then perhaps setting State::setCheckForGLErrors to ONCE_PER_ATTRIBUTE will give a more precise error.

Thanks
-Michael Platings

-----Original Message-----
From: osg-submissions-bounces at lists.openscenegraph.org [mailto:osg-submissions-bounces at lists.openscenegraph.org] On Behalf Of paul1492 at yahoo.com
Sent: 05 June 2008 19:56
To: OpenSceneGraph Submissions
Subject: Re: [osg-submissions] FrameBuffer AntiAliasing with OSG 2.5

I have no problem with the changes, other than the fact that I couldn't get it to work. :-). 
I have a Quadro FX 5600 and was using 16 samples and 4 color samples (which should be supported by my hardware).  I am getting:
Warning: detected OpenGL error 'invalid value' after RenderBin::draw(,)
RenderStage::drawInner(,) FBO status= 0x8cd5

and the image is garbage.. I don't know what the problem is here...

IIn addition,  also get these warnings when I compile the code:
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
   passing to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
    to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
   passing to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
    to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
   passing to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
    to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
   passing to `int' from `double'
OpenSceneGraph/src/osgUtil/RenderStage.cpp:858: warning: argument
    to `int' from `double'

I believe the values returned by the viewport size need to be cast to ints when passed to glBlitFramebufferEXT as I did in my code.
I'm also not sure what the purpose is of RenderStage::setResolveFramebufferObject(). Nor am I sure what the advantage is of having the samples and color samples passed to the Camera object directly rather than passing then through the attachment call.

----- Original Message ----
From: Robert Osfield <robert.osfield at gmail.com>
To: OpenSceneGraph Submissions <osg-submissions at lists.openscenegraph.org>
Sent: Tuesday, June 3, 2008 8:10:18 AM
Subject: Re: [osg-submissions] FrameBuffer AntiAliasing with OSG 2.5

Hi Paul and Michael,

I was just about to review Paul's changes when Michael's come along... :-)

Paul could you review Michael's changes to see if you are happy with his changes, if you are happy then I'll just go ahead to Michael's version, otherwise I'll probably have to review both sets just to make sure that nothing has slipped through the net on either implementation.

Robert.

On Mon, Jun 2, 2008 at 1:41 PM,  <paul1492 at yahoo.com> wrote:
> I've attempted to add FrameBuffer AntiAliasing to OSG... I did this before with OSG 1.2 and now my company has found the money to pay me to look into adding it to the latest OSG.
>
> However, since I do not have access to SVN (not approved use by my employer :-(), I've made the required changes to OSG 2.5... I don't think much has changed in this area since then...
>
> Like last time, I've attached the NVIDIA test program "simple_framebuffer_object.cpp".
> I've done my best to support a "fallback" implementation if the hardware doesn't support it...
> To support frame buffer AA, I've extended the camera->attach() function to support an additional (optional) 2 arguments. They are:  Coverage AA Samples and Depth AA Samples.
> Here is how I call it:
>    camera->attach(osg::CameraNode::COLOR_BUFFER, texture,
>                              0, 0, false,
>                              mCoverageAAMode, mDepthAAMode);
>
> Feel free to make any changes.
> Paul Palumbo
>
>
>
>
> _______________________________________________
> osg-submissions mailing list
> osg-submissions at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscene
> graph.org
>
>
_______________________________________________
osg-submissions mailing list
osg-submissions at lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org


      
_______________________________________________
osg-submissions mailing list
osg-submissions at lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________

______________________________________________________________________
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager.

This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________



      
_______________________________________________
osg-submissions mailing list
osg-submissions at lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________

______________________________________________________________________
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________


More information about the osg-submissions mailing list