Hi Robert,following the discussion yesterday on osg-users, I have decided to submit the original patch as is.
MRT is enabled by an explicit call on osg::Camera (setDrawBuffers), just like readback of textures/images is enabled by osg::Camera->attach.
To me, the camera seems the natural place for these things at the moment. If it would make sense as a StateAttribute (either for Camera or FBO), the implementation is left as a possible future enhancement.
regards jp old message ----8<---- Attached are the changes to OSG's Camera and RenderStage.Camera got a new method called setDrawBuffers (instead of the normal setDrawBuffer), which mirrors the OpenGL extension glDrawBuffers.
setDrawBuffers takes a vector of BufferComponents and this vector is then translated in RenderStage to a vector of GLenums that is passed to glDrawBuffers.
The new calls are orthogonal to current use cases, so hopefully no other code/examples would be affected.
The attached example shows sample usage. The example is very contrived, but I hope it explains the concept. I have some other examples that I can contribute later.
----8<---- --This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.
This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. MailScanner thanks Transtec Computers for their support.
OSG_MRT_200803.tgz
Description: application/compressed-tar
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
