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

Reply via email to