diff --git a/src/osgUtil/CullVisitor.cpp b/src/osgUtil/CullVisitor.cpp index 104b51476..807fee7ca 100644 --- a/src/osgUtil/CullVisitor.cpp +++ b/src/osgUtil/CullVisitor.cpp @@ -1294,19 +1294,23 @@ void CullVisitor::apply(osg::Camera& camera) // reusing render to texture stage, so need to reset it to empty it from previous frames contents. rtts->reset(); } - + + // set up clera masks/values + rtts->setClearDepth(camera.getClearDepth()); + rtts->setClearAccum(camera.getClearAccum()); + rtts->setClearStencil(camera.getClearStencil()); + rtts->setClearMask(camera.getClearMask()); // set up the background color and clear mask. if (camera.getInheritanceMask() & CLEAR_COLOR) { - rtts->setClearColor(camera.getClearColor()); + rtts->setClearColor(previous_stage->getClearColor()); } else { - rtts->setClearColor(previous_stage->getClearColor()); + rtts->setClearColor(camera.getClearColor()); } - rtts->setClearMask(camera.getClearMask()); // set the color mask. osg::ColorMask* colorMask = camera.getColorMask()!=0 ? camera.getColorMask() : previous_stage->getColorMask(); @@ -1317,6 +1321,7 @@ void CullVisitor::apply(osg::Camera& camera) rtts->setViewport( viewport ); + // set up to charge the same PositionalStateContainer is the parent previous stage. osg::Matrix inhertiedMVtolocalMV; inhertiedMVtolocalMV.invert(originalModelView);