How finely (or coarsely) approximated is the runway surface? Could it be that your issue is caused by regular ol' OpenGL per-vertex lighting? -Paul
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of Chris Best > Sent: Tuesday, April 22, 2008 4:02 PM > To: OpenSceneGraph Users > Subject: [osg-users] Spotlight only affecting parts of scene > despite changesto root stateSet > > First time posting to the list, so please bear with me... > > I'm currently trying to attach a lightsource node to the > front end of an aircraft model in the application I'm working > on that acts as a spotlight (to simulate landing lights/head lights). > Even though I am setting the stateset up how (I think) I am > supposed to, as such: > > lightNode->setStateSetModes(*root->getOrCreateStateSet(),osg:: StateAttri > lightNode->bute::ON); > > The spotlight is only affecting the plane model (and some > billboards way off in the background if I aim it at them), > and not the runway. I even went as far as to make a > nodeVisitor and traverse the entire scene graph calling the > light source's > setStateSetModes() on every osg::Node in it, no dice. > > I can think of a couple weird things we do that might affect > things since I'm not sure how they interact with LightSource nodes: > > 1) My terrain is drawn in renderbin 1, aircraft shadows in > renderbin 3, and aircraft in renderbin 9. Due to some > complications with our application, we can't use the > osgShadow nodekit so we're using plain old projected shadows > for now. The terrain in renderbin 1 puts 1s into the stencil > buffer and the shadows in renderbin 3 only draw where the > stencil buffer is 1 and reset it back to zero, to prevent a > pixel from being shadowed twice. The shadow pass is > implemented by having an osg::MatrixTransform with the shadow > projection matrix for light 0 (the sun) which has as its > child the group node containing all the aircraft in the > scene. Do I have to worry about the renderbin that the > lightsource is in? > > 2) To prevent the osgSim::LightPoints on the aircraft (as > well as text labels and other junk) from being drawn as > shadows, I unset the highest bit of the nodemask for the > objects I don't want drawn and then I modify the cull > visitor's mask with a callback when it passes through my > shadow matrix to only have the highest bit set. The group the > osg::LightSource is under does not have its highest bit set, > but it should still get visited when the aircraft group gets > visited (as evidenced by the fact that it does light up the > aircraft it is attached to)... > Am I not understanding some default magic about bits in nodemasks? > > At this point I'm lost. I'm still not sure how things like > render bins and nodemasks affect lightsources in the scene > graph, but maybe I'm barking up the wrong tree worrrying about that. > Anything obvious it seems I've missed? If more info is > needed, please let me know, and I'll go into as much detail > as possible. > > Thanks! > -Chris B > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-opensce negraph.org _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

