osg可以实现各种各样角复杂的粒子效果,下面实现一个比较简单的下雪的效果:
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

相关文章: