我要发帖 回复

管理员

735

主题

2万

积分

30

专家分

忠于职守杰出贡献鼓励

兴趣点(最多三项):

建模技术

私信
发表时间 : 2011-9-27 10:37:42 | 浏览 : 1674    评论 : 8
功能:
1.取得导弹位置,并产生特效
2.综合了几个特效,形成爆炸时的综合效果
  1. void postObjFX()
  2. {
  3.         //m_hitfxData
  4.         CString sObjName;
  5.         sObjName.Format("%d",m_eventData.tID);  // 导弹物体名称
  6.         vpObject*    pObj=NULL;
  7.         pObj=vpObject::find(sObjName);

  8.         if(pObj)
  9.         {
  10.                 double x,y,z;
  11.                 pObj->getPosition(&x,&y,&z);

  12.                 vpFxExplosion2* pFxExplosion2_testFX1 = new vpFxExplosion2();
  13.                 pFxExplosion2_testFX1->setName( "testFX1" );
  14.                 pFxExplosion2_testFX1->setCullMask( 0x0FFFFFFFF );
  15.                 pFxExplosion2_testFX1->setRenderMask( 0x0FFFFFFFF );
  16.                 pFxExplosion2_testFX1->setIsectMask( 0x0FFFFFFFF );
  17.                 pFxExplosion2_testFX1->setStrategyEnable( true );
  18.                 pFxExplosion2_testFX1->setTranslate(x,y,z);
  19.                 pFxExplosion2_testFX1->setRotate( 0 ,  0 ,  0 );
  20.                 pFxExplosion2_testFX1->setScale( 20.5 ,  20.5 ,  20.5 );
  21.                 pFxExplosion2_testFX1->setStaticEnable( false );
  22.                 pFxExplosion2_testFX1->setEnable( true );
  23.                 pFxExplosion2_testFX1->setRepeatEnable( false );
  24.                 pFxExplosion2_testFX1->setOverallColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );
  25.                 pFxExplosion2_testFX1->setTextureBlendColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );
  26.                 pFxExplosion2_testFX1->setTextureMode( vpFx::TEXTURE_MODE_MODULATE );
  27.                 pFxExplosion2_testFX1->setTextureFile( "explosion2.rgba" );
  28.                 pFxExplosion2_testFX1->setOverallDuration( 5.000000f );
  29.                 pFxExplosion2_testFX1->setFadeDuration( 0.000000f ,  0.000000f );
  30.                 pFxExplosion2_testFX1->setTransparencyDepthOffset( 0.000000f );
  31.                 pFxExplosion2_testFX1->setTransparencyDepthRadiusScaler( 0.000000f );
  32.                 pFxExplosion2_testFX1->setDepthWriteEnable( false );
  33.                 pFxExplosion2_testFX1->setWindSource( vpFxParticleSystem::WIND_SOURCE_TABLE );
  34.                 if(!pFxExplosion2_testFX1->isConfigured())
  35.                         pFxExplosion2_testFX1->configure();


  36.                 vpFxFire* pFxFire_testFX2 = new vpFxFire();
  37.                 pFxFire_testFX2->setName( "testFX2" );
  38.                 pFxFire_testFX2->setCullMask( 0x0FFFFFFFF );
  39.                 pFxFire_testFX2->setRenderMask( 0x0FFFFFFFF );
  40.                 pFxFire_testFX2->setIsectMask( 0x0FFFFFFFF );
  41.                 pFxFire_testFX2->setStrategyEnable( true );
  42.                 pFxFire_testFX2->setTranslate(x,y,z);
  43.                 pFxFire_testFX2->setRotate( 0 ,  0 ,  0 );
  44.                 pFxFire_testFX2->setScale( 3 ,  3 ,  3 );
  45.                 pFxFire_testFX2->setStaticEnable( false );
  46.                 pFxFire_testFX2->setEnable( true );
  47.                 pFxFire_testFX2->setRepeatEnable( true );
  48.                 pFxFire_testFX2->setOverallColor( 1.000000f ,  1.000000f ,  1.000000f ,  0.500000f );
  49.                 pFxFire_testFX2->setTextureBlendColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );
  50.                 pFxFire_testFX2->setTextureMode( vpFx::TEXTURE_MODE_MODULATE );
  51.                 pFxFire_testFX2->setTextureFile( "fire.rgba" );
  52.                 pFxFire_testFX2->setOverallDuration( 1000000000.000000f );
  53.                 pFxFire_testFX2->setFadeDuration( 0.000000f ,  10.000000f );
  54.                 pFxFire_testFX2->setTransparencyDepthOffset( 0.000000f );
  55.                 pFxFire_testFX2->setTransparencyDepthRadiusScaler( 0.000000f );
  56.                 pFxFire_testFX2->setDepthWriteEnable( false );
  57.                 pFxFire_testFX2->setWindSource( vpFxParticleSystem::WIND_SOURCE_TABLE );
  58.                 if(!pFxFire_testFX2->isConfigured())
  59.                         pFxFire_testFX2->configure();

  60.                 vpFxSmoke* pFxSmoke_testFX3 = new vpFxSmoke();
  61.                 pFxSmoke_testFX3->setName( "testFX3" );
  62.                 pFxSmoke_testFX3->setCullMask( 0x0FFFFFFFF );
  63.                 pFxSmoke_testFX3->setRenderMask( 0x0FFFFFFFF );
  64.                 pFxSmoke_testFX3->setIsectMask( 0x0FFFFFFFF );
  65.                 pFxSmoke_testFX3->setStrategyEnable( true );
  66.                 pFxSmoke_testFX3->setTranslate(x,y,z );
  67.                 pFxSmoke_testFX3->setRotate( 0 ,  0 ,  0 );
  68.                 pFxSmoke_testFX3->setScale( 10 ,  10 ,  10 );
  69.                 pFxSmoke_testFX3->setStaticEnable( false );
  70.                 pFxSmoke_testFX3->setEnable( true );
  71.                 pFxSmoke_testFX3->setRepeatEnable( true );
  72.                 pFxSmoke_testFX3->setOverallColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );
  73.                 pFxSmoke_testFX3->setTextureBlendColor( 1.000000f ,  1.000000f ,  1.000000f ,  1.000000f );
  74.                 pFxSmoke_testFX3->setTextureMode( vpFx::TEXTURE_MODE_MODULATE );
  75.                 pFxSmoke_testFX3->setTextureFile( "smoke.inta" );
  76.                 pFxSmoke_testFX3->setOverallDuration( 1000000000.000000f );
  77.                 pFxSmoke_testFX3->setFadeDuration( 0.000000f ,  30.000000f );
  78.                 pFxSmoke_testFX3->setTransparencyDepthOffset( 0.000000f );
  79.                 pFxSmoke_testFX3->setTransparencyDepthRadiusScaler( 0.000000f );
  80.                 pFxSmoke_testFX3->setDepthWriteEnable( false );
  81.                 pFxSmoke_testFX3->setWindSource( vpFxParticleSystem::WIND_SOURCE_TABLE );
  82.                 if(!pFxSmoke_testFX3->isConfigured())
  83.                         pFxSmoke_testFX3->configure();


  84.                 vpScene* pScene=*vpScene::begin();
  85.                 ASSERT(pScene);
  86.                 pScene->addChild( pFxExplosion2_testFX1);
  87.                 pScene->addChild( pFxFire_testFX2);
  88.                 pScene->addChild( pFxSmoke_testFX3);

  89.                 pObj->setRenderMask( 0x00000000 );



  90.         }



  91. }
复制代码

最近VR访客查看更多↓

gubingjie 评论于2011-9-27 11:34:31
老大,我顶你。
峰子 评论于2011-9-28 16:34:37
学习了。只是,好多初始化的,不是可以在acf中弄好吗,只要设定一个位置不就行了吗?有需要写这么一大段代码吗?{:2_68:}
峰子 评论于2011-9-28 16:36:21
另外,我有个困惑想问一下老大,那个特效,我觉得好难做出逼真的效果啊。。。请问都有哪些方式可以弄的逼真点啊。。。这个不懂啊。。。
obuil 评论于2011-10-5 21:26:05
峰子 发表于 2011-9-28 04:36 PM
另外,我有个困惑想问一下老大,那个特效,我觉得好难做出逼真的效果啊。。。请问都有哪些方式可以弄的逼真 ...

这个需要调试,掌握粒子系统的 特性 ,然后慢慢调
UE4   |   虚幻引擎   |   Unity VR    |    Hololens
yixiaowusheng 评论于2011-10-27 23:51:05
顶老大!强人啊!
single010203专家组 评论于2011-10-28 22:03:23
新手小弟也顶一下,老大真强,
弱弱的问一下,程序都看不懂,我现在该如何下手,才能从程序上得到提高呢?
kodong122 评论于2011-10-31 21:15:23
是否都可以在ACF中完成啊?

也就这两句需要代码编写吧
->setTranslate(x,y,z );
->setRotate( 0 ,  0 ,  0 );
wujun 评论于2012-1-7 08:18:10
新手小弟也顶一下,老大真强

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2022-11-30 02:42 AM

返回顶部