查看: 1372|回复: 4

stepintoopenscenegraph书中的一个程序

[复制链接]

该用户从未签到

发表于 2011-4-26 15:43:24 | 显示全部楼层 |阅读模式
#include <osgProducer/Viewer>
#include <osg/Group>
#include <osgParticle/ExplosionEffect>
#include <osgParticle/ExplosionDebrisEffect>
#include <osgParticle/SmokeEffect>
#include <osgParticle/FireEffect>
void CreateFire(osg::Group *root)
{
//设置风速
osg::Vec3 wind(1.0f,0.0f,0.0f);
//设置位置
osg::Vec3 position(0, 0, 0) ;
//申请爆炸物,1.0为缩放比,当前为不缩放,还有一个默认的剧烈程度的参数,默认为1.0
osgParticle::ExplosionEffect* explosion = new osgParticle::ExplosionEffect(position, 1.0f);
//申请爆炸后的碎片,1.0为缩放比,当前为不缩放,还有一个默认的剧烈程度的参数,默认为1.0
osgParticle::ExplosionDebrisEffect* explosionDebri = new osgParticle::ExplosionDebrisEffect(position, 1.0f);
//建立烟模拟,1.0为缩放比,当前为不缩放,还有一个默认的剧烈程度的参数,默认为1.0
osgParticle::SmokeEffect* smoke = new osgParticle::SmokeEffect(position, 1.0f);
//建立火焰模拟,1.0为缩放比,当前为不缩放,还有一个默认的剧烈程度的参数,默认为1.0
osgParticle::FireEffect* fire = new osgParticle::FireEffect(position, 1.0f,5.0f);
//设置风力影响
explosion->setWind(wind);
explosionDebri->setWind(wind);
smoke->setWind(wind); fire->setWind(wind);
//加入到根结点
root->addChild(explosion);
root->addChild(explosionDebri);
root->addChild(smoke);
root->addChild(fire);
}
int main(int argc, char **argv)
{
osgProducer::Viewer viewer;
viewer.setUpViewer(osgProducer::Viewer::STANDARD_SETTINGS);
osg::Group *root = new osg::Group;
//创建结点
CreateFire(root);
viewer.setSceneData(root);
viewer.realize();
while( !viewer.done() )
{
  viewer.sync();
  viewer.update();
  viewer.frame();
}
viewer.sync();
viewer.cleanup_frame();
viewer.sync();
return 0;
}
我用的是osg2.99,这个程序运行不出...里面是旧版本的库,新版本osgProducer库改成了osgViewer,剩下的就不知道了。。。。求指教

该用户从未签到

发表于 2011-4-26 19:37:10 | 显示全部楼层
osgProducer改成osgViewer

该用户从未签到

发表于 2011-4-27 08:41:19 | 显示全部楼层
有无数新版本的例子程序可以供您参考,简单来说就是去掉sync()和update(),去掉那些没有被定义的接口,因为它们不再需要或者已经有了默认设置了

该用户从未签到

 楼主| 发表于 2011-4-27 10:41:58 | 显示全部楼层
回复 3# array


    新版本例子在哪可以找到?

该用户从未签到

发表于 2011-4-27 14:04:33 | 显示全部楼层
在新版本的代码包里有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表