HI ??? Could you please sign with your name so we know who to address. Try moving the light source to under the ShadowedScene node.
Robert. 2009/3/17 <tuandov...@gmail.com> > I’m trying to use osgShadow, I read examples on osg website and try to > run this code > > But the shadow appears strangely like this picture: > > http://i475.photobucket.com/albums/rr113/tek3D/shadow.jpg > > Here is the code I tested: > > int main() > > { > > osgViewer::Viewer viewer; > > > > osg::ref_ptr<osg::Group> root = new osg::Group; > > // create light source. > > osg::LightSource* lightsource = new osg::LightSource; > > osg::Light* light = new osg::Light; > > lightsource->setLight(light); > > light->setDirection(osg::Vec3(0,10,0)); > > light->setPosition(osg::Vec4(0,0,90,1.0f)); > > light->setAmbient(osg::Vec4(0.00f,0.00f,0.08f,1.0f)); > > light->setDiffuse(osg::Vec4(1.0f,1.0f,1.0f,1.0f)); > > root->addChild(lightsource); > > > > //shadow > > const int ReceivesShadowTraversalMask = 0x1; > > > > const int CastsShadowTraversalMask = 0x2; > > > > osg::ref_ptr<osgShadow::ShadowedScene> shadowedScene = new > osgShadow::ShadowedScene; > > > > > shadowedScene->setReceivesShadowTraversalMask(ReceivesShadowTraversalMask); > > shadowedScene->setCastsShadowTraversalMask(CastsShadowTraversalMask); > > > > osg::ref_ptr<osgShadow::ShadowMap> sm = new osgShadow::ShadowMap; > > shadowedScene->setShadowTechnique(sm.get()); > > > > int mapres = 1024; > > sm->setTextureSize(osg::Vec2s(mapres,mapres)); > > sm->setLight(light); > > > > osg::Node* cessna1 = osgDB::readNodeFile("car68/car68.3DS"); > > cessna1->setNodeMask(CastsShadowTraversalMask); > > > > osg::Node* cessna2 = osgDB::readNodeFile("lai.flt"); > > cessna2->setNodeMask(ReceivesShadowTraversalMask); > > > > osg::MatrixTransform* positioned = new osg::MatrixTransform; > > osg::Matrix mat = osg::Matrix::rotate(2.7, osg::Vec3(0,0,1)); > > > positioned->setMatrix(mat*positioned->getMatrix()*osg::Matrix::translate(10,40,2)); > > positioned->addChild(cessna1); > > > > shadowedScene->addChild(positioned); > > shadowedScene->addChild(cessna2); > > > > root->addChild(shadowedScene); > > > > viewer.setSceneData(root); > > return viewer.run(); > > } > > > > Could anyone help me with this problem? Thanks in advance! > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org