Hi Christophe, The SVN and 2.1.x versions of the OSG have cleaned up light management in osg::View, the management of SceneView for rendering is also more exposed via osgViewer::Renderer.
Robert. On 9/13/07, Christophe Medard <[EMAIL PROTECTED]> wrote: > > > OK thanks, the code I was looking for to understand the whole thing lies > inside osgUtil::SceneView.cpp. > > The chain is : > osgViewer::Viewer::setUpRenderingSupport() --> > osgUtil::SceneView::setDefaults() , on each SceneView the Viewer has... > > The _light member inside osgViewer::Viewer in the code as is, as far as I > can see, isn't associated to any StateSet nor any LightSource so is useless > for now (but maybe is to add itself to the SceneView::_globalStateSet one in > the future versions of OSG). OK... > > Having multiple levels where things can be (osg::Light in this case) is a > bit tricky indeed. > Thanks for the help, I understand the mecanics... > > --- > > The ony thing that remains is that : > -> SceneView::_globalStateSet isn't set in any scenegraph the user can > modify after osgViewer creation : it is used along display list (if I > understand correctly, being still a little rookie), established through > cullVisitor and alike > -> due to protection levels one cannot access easily to sceneViews and their > _globalStateSet having a pointer to the mere Viewer. > > Therefore, in other words, using osgViewer as is, and remaining at the scene > graph level isn't possible to solve the problem. > The other alternative would be to override some function of > osgViewer::Viewer or osgUtil::SceneViews but there again it's hard since the > non-virtual status of concerned methods prevent their overriding... > > To sum up, it's quite hard to obtain a neutral lighting (but maybe also of > other properties) with current version of osgView and osgViewer. > Is there examples of OpenSceneGraph mainloops that don't use osgViewer as > the core ?? > (It would prevent to have to do those resettings...) > I don't have seen any in > http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.0.0/examples/ > . > > > > -- > Christophe Médard > Société OKTAL (http://www.oktal.fr) > 2 impasse Boudeville > 31100 Toulouse (France) > Tél. : (+33) 5 62 11 50 10 > Fax : (+33) 5 62 11 50 29 > > > > ----- Original Message ----- > From: Paul Martz > To: 'OpenSceneGraph Users' > > > The fact that osgViewer/SceneView set up default lighting does seem to > confuse many users, as your posting demonstrates. However, lighting state is > really no different from any other state. You can control it in your own > scene graph using standard OSG setMode, setAttribute, and > setAttributeAndModes calls. > > StateSet::setMode( GL_LIGHTING, OFF ); // Disable the OpenGL lighting > feature > StateSet::setMode( GL_LIGHT_0, OFF ); // Disable OpenGL light 0 > > The above two calls disable the two features enabled in osgViewer/SceneView > by default. > > If you want to leave lighting and light 0 enabled and simply control the > light's attribute (position, color, etc) then you should use osg::Light and > the osg::LightSource node as demonstrated in the osglighting example > program. > > Hope that helps, > > > Paul Martz > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

