From 7e90968c4eaed8199655451807dadf6ee687873f Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Sun, 15 Jul 2012 08:13:05 +0200 Subject: [PATCH] Make the point light non permanent in Rembrandt --- src/Viewer/CameraGroup.cxx | 12 ++++++++++++ src/Viewer/renderer.cxx | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Viewer/CameraGroup.cxx b/src/Viewer/CameraGroup.cxx index 020637db5..4cabb3181 100644 --- a/src/Viewer/CameraGroup.cxx +++ b/src/Viewer/CameraGroup.cxx @@ -1087,6 +1087,18 @@ void CameraGroup::setCameraCullMasks(Node::NodeMask nm) camera = info->getCamera( GEOMETRY_CAMERA ); if (camera == 0) continue; camera->setCullMask( nm & ~simgear::MODELLIGHT_BIT ); + + camera = info->getCamera( LIGHTING_CAMERA ); + if (camera == 0) continue; + osg::Switch* sw = camera->getChild(0)->asSwitch(); + for (unsigned int i = 0; i < sw->getNumChildren(); ++i) { + osg::Camera* lc = sw->getChild(i)->asCamera(); + if (lc == 0) continue; + string name = lc->getName(); + if (name == "LightCamera") { + lc->setCullMask( (nm & simgear::LIGHTS_BITS) | (lc->getCullMask() & ~simgear::LIGHTS_BITS) ); + } + } } } } diff --git a/src/Viewer/renderer.cxx b/src/Viewer/renderer.cxx index ffc6c21eb..9d64ddc52 100644 --- a/src/Viewer/renderer.cxx +++ b/src/Viewer/renderer.cxx @@ -1275,7 +1275,7 @@ FGRenderer::buildLightingLightsPass(CameraInfo* info, FGRenderingPipeline::Pass* lightCam->setViewMatrix(osg::Matrix::identity()); lightCam->setProjectionMatrix(osg::Matrix::identity()); lightCam->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR); - lightCam->setCullMask( simgear::MODELLIGHT_BIT | simgear::LIGHTS_BITS | simgear::PANEL2D_BIT ); + lightCam->setCullMask( simgear::MODELLIGHT_BIT | simgear::PANEL2D_BIT ); lightCam->setInheritanceMask( osg::CullSettings::ALL_VARIABLES & ~osg::CullSettings::CULL_MASK ); lightCam->addChild( mDeferredRealRoot.get() ); -- 2.39.5