我要发帖 回复

正式会员

6

主题

72

积分

0

专家分

兴趣点(最多三项):

VegaPrime

私信
发表时间 : 2018-10-24 18:10:54 | 浏览 : 177    评论 : 4
版本上是基于99daodan大佬的坦克模型,在获取炮口的dof节点位置后,要打出至多300个弹丸,300个弹丸的显示的问题,想请教一下大佬们有没有什么好的办法?
1。我的想法是在vp里放300个弹丸的模型,然后再vs里写代码调用,用SetTranslate来显示移动,目前实现了可以同时打出2个弹丸,但是如果在vp里放300个弹丸模型,mfc界面显示时,感觉会很卡顿(目前还没实验),所以想来问问大佬们有没有什么好的办法。

最近VR访客

sichuanwww 评论于2018-10-25 00:10:50
本帖最后由 sichuanwww 于 2018-10-25 12:13 AM 编辑
chenhao19950514 发表于 2018-10-24 06:10 PM
版本上是基于99daodan大佬的坦克模型,在获取炮口的dof节点位置后,要打出至多300个弹丸,300个弹丸的显示 ...

只需要一个弹丸,发射出去的都是复制一份而已。想各自控制每个弹丸,就使用多线程。
努力挣钱,快乐生活!
chenhao19950514 评论于2018-10-25 20:44:43
sichuanwww 发表于 2018-10-25 12:10 AM
只需要一个弹丸,发射出去的都是复制一份而已。想各自控制每个弹丸,就使用多线程。 ...

不太理解大佬讲具体一点
sichuanwww 评论于2018-10-26 08:09:03
chenhao19950514 发表于 2018-10-25 08:44 PM
不太理解大佬讲具体一点

在发射事件里启用代码

  1.                 vpObject * object=new vpObject();
  2.                   object->setCopySource(PublicMember::WxpVR_pObject);
  3.                   object->autoPage();

  4.                 //获取弹丸的原始位置
  5.                   double x,y,z;
  6.                   PublicMember::WxpVR_pObject->getTranslate(&x,&y,&z);
  7.                
  8.                 //向上偏移0.3米
  9.                   z=z+0.3;
  10.                   object->setTranslate(x,y,z);

  11.                   PublicMember::WxpVR_pObject->getRotate(&x,&y,&z);
  12.                  object->setRotate(x,y,z);

  13.                   vpScene *scene=*vpScene::begin();
  14.                   scene->addChild(object);
  15.                   PublicMember::WxpVR_pObject=object;
  16.                   PublicMember::WxpVR_s_pInstancesToUnref->push_back( object );
  17.                   
  18.                  //启动控制弹丸的线程
复制代码
努力挣钱,快乐生活!
david_m 评论于2018-10-31 20:22:05
不会卡的,你可以先复制好,隐藏起来,再显示。不要临时复制。
勤省,笃学,自强

手机版|VR开发网 ( 津ICP备18009691号 )|网站地图 统计 网安备12019202000257

GMT+8, 2018-12-12 06:37 AM

返回顶部