查看: 1942|回复: 6

关于多线程或者动态更新?

[复制链接]

该用户从未签到

发表于 2013-3-22 21:17:11 | 显示全部楼层 |阅读模式
大致是这么回事:
场景里有很多个节点(一千以上),循环让每个节点发射出100条线分别在场景中做相交检测(这些线也是可视化的),并显示每次的检测结果。
我现在的情况是执行的时候程序卡住(处于无响应状态)很久,最后循环完的时候显示出最后的结果。我想要的状态是没个节点的分析结果都可以实时的看到,就是做一个更新一个。
是要用到多线程么?还是有什么简单的处理方法,求指导……

该用户从未签到

发表于 2013-3-25 08:21:42 | 显示全部楼层
多线程要保证您的求交过程中场景是不变的,不然是有可能出错的。还有osg那种求教算法不知道能不能满足效率的要求

该用户从未签到

发表于 2013-3-25 09:41:42 | 显示全部楼层
OSG的求交算法效率还是不错的,这是scene graph的天然特性。但是楼主那种“循环让每个节点发射出100条线”的行为是不可能做到实时的,无论用什么引擎什么算法。如果非要这么做,只能另外开辟一个线程,而且这种多线程读写的操作很可能让程序崩溃。所以我认为您目前的这个做法是存在问题的,需要重新考虑自己的需求

该用户从未签到

 楼主| 发表于 2013-3-25 13:55:42 | 显示全部楼层
array 发表于 2013-3-25 09:41
OSG的求交算法效率还是不错的,这是scene graph的天然特性。但是楼主那种“循环让每个节点发射出100条线”的 ...

我主要是想让程序一边做求交,一边实时的让使用者看到当前的计算进度,array大大有什么好的建议么,帮下小弟,实在是愁的不行了……

该用户从未签到

发表于 2013-3-26 14:45:58 | 显示全部楼层
最简单的想法,就是保存两份数据,一份用来显示,一份多线程做求交运算

该用户从未签到

 楼主| 发表于 2013-3-28 12:43:21 | 显示全部楼层
array 发表于 2013-3-26 14:45
最简单的想法,就是保存两份数据,一份用来显示,一份多线程做求交运算

现在是多线程的动态显示计算进度和相交检测已经实现了,就是在运行的时候渲染+计算进行几个的时候程序就崩溃了,提示:Expression:vector iterator not incrementable  是不是内存管理方面的问题啊,应该怎么处理呢,请指导!

该用户从未签到

发表于 2013-4-1 09:41:42 | 显示全部楼层
如果您是多个线程用同一份场景数据来渲染和求交,那么很可能因为线程访问冲突的原因而造成这样的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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