Hi ,all:
In the ocean example attached osgOcean,i loaded a 3d model which is named
spaceship.osg from osg offical data, but i did not find the transparent
colorful flame trail of spaceship,which exist in fact if spaceship was rendered
correctly . why?
the code as follows:
//==========================
...
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
// any option left unread are converted into errors to write out later.
arguments.reportRemainingOptionsAsUnrecognized();
// report any errors if they have occurred when parsing the program
arguments.
if (arguments.errors())
{
arguments.writeErrorMessages(std::cout);
return 1;
}
osgViewer::Viewer viewer;
viewer.setUpViewInWindow( 150,150,1024,768, 0 );
viewer.addEventHandler( new osgViewer::StatsHandler );
osg::ref_ptr<TextHUD> hud = new TextHUD;
osg::ref_ptr<SceneModel> scene = new SceneModel(windDirection, windSpeed,
depth, scale, isChoppy, choppyFactor, crestFoamHeight);
viewer.addEventHandler(scene->getOceanSceneEventHandler());
viewer.addEventHandler(scene->getOceanSurface()->getEventHandler());
viewer.addEventHandler( new SceneEventHandler(scene.get(), hud.get(),
viewer ) );
viewer.addEventHandler( new osgViewer::HelpHandler );
osg::Group* root = new osg::Group;
root->addChild( scene->getScene() );
root->addChild( hud->getHudCamera() );
if (loadedModel.valid())
{
loadedModel->setNodeMask( scene->getOceanScene()->getNormalSceneMask()
|
scene->getOceanScene()->getReflectedSceneMask()
|
scene->getOceanScene()->getRefractedSceneMask()
);
scene->getOceanScene()->addChild(loadedModel.get());
}
// load spaceship ,added by me
osg::ref_ptr<osg::PositionAttitudeTransform> pat = new
osg::PositionAttitudeTransform();
//osg::Vec3(10.0f,0.0f,0.0f)
pat->setPosition(osg::Vec3(0.0f,0.0f,20.0f));
osg::ref_ptr<osg::Node> spaceship= osgDB::readNodeFiles("spaceship.osg");
if (spaceship.valid())
{
spaceship->setNodeMask( scene->getOceanScene()->getNormalSceneMask() |
scene->getOceanScene()->getReflectedSceneMask()
|
scene->getOceanScene()->getRefractedSceneMask()
);
pat->addChild(spaceship.get());
scene->getOceanScene()->addChild(pat.get());
}
viewer.setSceneData( root );
viewer.realize();
while(!viewer.done())
{
viewer.frame();
}
return 0;_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org