Hi, All,
When I use multiple lights, the program is the attachment. Though I set two
lights in the scene, but one light brighten objects. So what is the problem?
Thanks for your reply.
PS. the program is as follows.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_scene = new osg::Group;
osg::ref_ptr<osg::LightSource> oneLight = new osg::LightSource;
osg::ref_ptr<osg::Light> light = new osg::Light;
light->setLightNum(0);
osg::Vec4 ambient(0.1f,0.1f,0.1f,1.0f);
osg::Vec4 specular(0.5f,0.5f,0.5f,1.0f);
float shineness = 30;
light->setAmbient(ambient);
light->setSpecular(specular);
//light->setSpotExponent(shineness);
light->setPosition(osg::Vec4(0.0,0.0,2000.0,1.0f));
light->setDiffuse(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
light->setConstantAttenuation(1.0f);
oneLight->setLight(light.get());
//_scene->setReferenceFrame(osg::LightSource::ABSOLUTE_RF); // headlight.
oneLight->setReferenceFrame(osg::LightSource::RELATIVE_RF); // sun
oneLight->setLocalStateSetModes(osg::StateAttribute::ON);
// add either a headlight or sun light to the scene.
osg::ref_ptr< osg::LightSource> anotherLight = new osg::LightSource;
osg::ref_ptr<osg::Light> light1 = new osg::Light;
light1->setLightNum(1);
light1->setAmbient(ambient);
light1->setSpecular(specular);
//light->setSpotExponent(shineness);
light1->setPosition(osg::Vec4(0.0,0.0,1.0, 0.0));
light1->setDiffuse(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
light1->setConstantAttenuation(1.0f);
anotherLight->setLight(light1.get());
anotherLight->setReferenceFrame(osg::LightSource::ABSOLUTE_RF);
anotherLight->setLocalStateSetModes(osg::StateAttribute::ON);
_scene->addChild( oneLight.get());
_scene->addChild( anotherLight.get());_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/