All,

We are using osgViewer::CompositeViewer.

We have cases in which we switch certain things to become transparent
during runtime, depending on user input and the view being drawn.

In order for those things to contain other transparent elements
(particles) we must disable writing to the depth buffer for those
elements. And, we set the rendering hint on those element statesets to
TRANSPARENT_BIN.

In a typical setup this works great.

When RTT is enabled, the camera that renders the texture ( a PRE_RENDER
camera ) sees that osg::Depth and does apply() on it somewhere. The
OpenGL state applied by this does not get re-set before the main camera
draws the textured quad over the view.

The way that I fix this issue is:
Create a Camera::DrawCallback that does glDepthMask(GL_TRUE) and assign
it to the main camera's predraw callback if RTT is used.

John
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to