240 发简信
IP属地:安徽
  • 杨总 我按照你的思路把粒子在earth上把粒子做出来了,后来我进一步在地球上做爆炸效果,怎么都出不来,也不知道是绘制出来了没找到还是根据就没有绘制成功,我把代码贴出来,麻烦你帮忙看看。给点思路啊

    osg::MatrixTransform* mt = new osg::MatrixTransform;
    osg::Matrixd mtd;
    em->computeLocalToWorldTransformFromLatLongHeight(osg::inDegrees(34.0), osg::inDegrees(109.0), 5000, mtd);
    mt->setMatrix(mtd);
    osg::ref_ptr<osg::Group> boomRootNode = new osg::Group();
    osg::Vec3 wind_direction(1.0f, 0.f, 0.f);
    osg::Vec3 boom_position(0.0f, 0.0f, 0.0f);
    // 爆炸模拟
    osg::ref_ptr<osgParticle::ExplosionEffect> explosion = new osgParticle::ExplosionEffect(boom_position, 10.f);
    // 爆炸碎片模拟
    osg::ref_ptr<osgParticle::ExplosionDebrisEffect> explosion_debris = new osgParticle::ExplosionDebrisEffect(boom_position, 10.0f);
    // 烟雾效果
    osg::ref_ptr<osgParticle::SmokeEffect> smoke = new osgParticle::SmokeEffect(boom_position, 10.0f);
    // 火焰效果
    osg::ref_ptr<osgParticle::FireEffect> fire = new osgParticle::FireEffect(boom_position, 10.f);
    explosion->setWind(wind_direction);
    explosion_debris->setWind(wind_direction);
    smoke->setWind(wind_direction);
    fire->setWind(wind_direction);
    boomRootNode->addChild(explosion);
    boomRootNode->addChild(explosion_debris);
    boomRootNode->addChild(smoke);
    boomRootNode->addChild(fire);
    mt->addChild(boomRootNode);
    root->addChild(mt);

    第16节 调试-粒子系统放在地球上,不见了

    致谢 感谢网友提出这个问题。大家有问题也可以在评论区提出,有问必有答。 问题描述 粒子系统在OSG里好好的,结果放在地球上就看不见了。将代码发给了我,让我长个眼看看。也欢迎大...