之前学习了osg粒子系统,载入模型,通过不同命令行参数显示不同粒子效果;
它的爆炸是4类粒子合成一起;
下面单独把烟的粒子独立出来,并改进程序,使用第一个命令行参数为模型名,以载入不同的模型,第二个命令行参数选择不同的粒子效果;
#include <Windows.h>
#include <osgViewer/Viewer>
#include <osg/Node>
#include <osg/Geode>
#include <osg/Group>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgUtil/Optimizer>
#include <osgParticle/PrecipitationEffect>
#include <osgParticle/ExplosionDebrisEffect>
#include <osgParticle/ExplosionEffect>
#include <osgParticle/SmokeEffect>
#include <osgParticle/FireEffect>
using namespace std;
osg::Node* node;
osg::ref_ptr<osg::Node> createExplode()
{
osg::ref_ptr<osg::Group> explode = new osg::Group();
//风向
osg::Vec3 wind(1.0f, 0.0f, 0.0f);
osg::Vec3 position(0.0f, 0.0f, -1.0f);
//爆炸模拟,10.0f为缩放比,默认为1.0f,不缩放
osg::ref_ptr<osgP