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

Reply via email to