Hi Wojtek and others --
I've posted a proposed change to osg-submissions. With my change, there
is no longer a need for the #defines Wojtek had added to RenderStage.cpp
to stop implicit creation of attachments. This is now under application
control.
In my code, I've added a new Camera method, setUseBufferMask(), and
there are three bits you can OR into the parameters. For example, if you
wanted color and stencil but not depth, you'd call:
camera->setUseBufferMask( osg::Camera::USE_COLOR_BUFFER |
osg::Camera::USE_STENCIL_BUFFER );
If you don't use this entry point, then you get the old default
behavior, which is the same as USE_COLOR_BUFFER|USE_DEPTH_BUFFER.
If you explicitly set your own attachment with attach() and then call
setUseBufferMasks but leave the corresponding bit out, your attachment
is not removed: The bit mask controls implicit creation of attachments only.
If you are doing MSFBO, you pass in two masks to control attachments to
the multisampled FBO and the resolve FBO respectively. In my case, I was
using MSFBO to render to texture, and I only needed to resolve color,
not depth. So I can now call:
camera->setUseBufferMask(
// Buffers in FBO for multisampled rendering:
osg::Camera::USE_COLOR_BUFFER | osg::Camera::USE_STENCIL_BUFFER,
// Buffers in resolve FBO:
osg::Camera::USE_COLOR_BUFFER );
This produces a color and depth attachment to the multisampled FBO, but
only color (my texture map) in the resolve FBO. So OSG will no longer
create and blit to an unnecessary resolve depth buffer.
I know this isn't the complete overhaul / explicit FBO interface we had
both expressed a desire for, but I think it creates a minimum of
disruption for the upcoming stable release and preserves backwards
compatibility, which is important.
Please test if you can, and if there are better fixes or ways to improve
this change, please suggest or submit them. Thanks.
Paul Martz
Skew Matrix Software LLC
_http://www.skew-matrix.com_ <http://www.skew-matrix.com/>
+1 303 859 9466
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org