osg可以实现各种各样角复杂的粒子效果,下面实现一个比较简单的下雪的效果:
void createSnow() {
osg::ref_ptr<osg::Group> root = new osg::Group;
root->addChild(osgDB::readNodeFile("cow.osg"));
//设置雪花类
osg::ref_ptr<osgParticle::PrecipitationEffect> sn = new osgParticle::PrecipitationEffect;
//设置雪花浓度
sn->snow(0.3);
//设置雪花颜色
sn->setParticleColor(osg::Vec4(1, 1, 1, 0));
//设置风向
sn->setWind(osg::Vec3(0, 0, 0));
root->addChild(sn.get());
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
viewer->addEventHandler(new osgViewer::WindowSizeHandler());
viewer->setSceneData(root.get());
viewer->realize();
viewer->run();
}
aaa