robertosfield wrote: > Ops, don't send modifications without compiling them first... > > The View::LightingMode and SceneView::LightingMode aren't compatible > enum's so can't be passed as is. I've spotted a better way of doing > this update, putting into the Renderer::updateSceneView() method along > with the setting of the fusion distance. > > Could you test this one? > > Robert. > > _______________________________________________ > osg-users mailing list > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > ------------------ > Post generated by Mail2Forum
Unfortunately your update to Renderer::updateSceneView() doesn't address the issue, nor would I expect it to. SceneView already gets the updated osg::View::LightingMode value inside SceneView::inheritCullSettings(), which is called inside Renderer::cull() (line 69, just a few lines down from the call to updateSceneView()). The problem is that the Renderer is never run for the master camera since I disabled it using mastercamera->setGraphicsContext(NULL). So the SceneViews for the slaves, which use the master camera's StateSet as their _globalStateSet, still have lighting enabled. I'm not saying this behavior is wrong per se, since I did explicitly disable the master camera. But if any change is to made to the OSG, it would have to be in ViewerBase::renderingTraversals() since that is where the master camera's Renderer::cull() method would normally be called. Let me think of an appropriate minimal update to ViewerBase::renderingTraversals(). Basically it needs to first update the lighting modes for each disabled camera's StateSet before performing Renderer::cull() for each enabled camera. Ravi ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=72713#72713 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org