查看: 1173|回复: 8

关于多线程或者动态更新怎么实现比较好

[复制链接]

该用户从未签到

发表于 2016-12-9 10:16:05 | 显示全部楼层 |阅读模式

场景里有很多个节点(几千个以上),循环遍历出这些数据加到root上,或者lod上,并显示在界面上。现在情况是因为数据太大,所以一次加载进来,内存就会不够用,我想根据距离远近显示不同的的模型的,是要用到多线程么?还是有什么简单的处理方法,求指导……

该用户从未签到

发表于 2016-12-10 13:29:03 | 显示全部楼层
编译64位版本的就好了。

该用户从未签到

发表于 2016-12-15 09:37:16 | 显示全部楼层
smash 发表于 2016-12-10 13:29
编译64位版本的就好了。

那样治标不治本。还是得在调度上下功夫

该用户从未签到

发表于 2016-12-17 21:54:36 | 显示全部楼层
风云轩 发表于 2016-12-15 09:37
那样治标不治本。还是得在调度上下功夫

动态调度的话,必须从内存中完全移除有意义,用LOD只会起反作用,增加内存的负载。需要后台新建一个线程,根据视点位置和移动趋势估算后面应该加载的模型,后台新建一个线程进行读取,加载估算范围内的模型,移除估算范围外的模型。

该用户从未签到

发表于 2016-12-19 21:39:47 | 显示全部楼层
使用PagedLOD试试!

该用户从未签到

发表于 2016-12-23 11:17:01 | 显示全部楼层
我也遇到了这样的问题,
只能从软件架构和硬件配置两方面解决了。
至于软件架构方面,我想肯定是多线程协调完成了。
这样存在线程调度问题,几个线程合理?如何调度?
谁有这方面的经验?给大家抛砖引玉一下吧!
谢谢!

该用户从未签到

发表于 2016-12-23 11:47:18 | 显示全部楼层
smash 发表于 2016-12-17 21:54
动态调度的话,必须从内存中完全移除有意义,用LOD只会起反作用,增加内存的负载。需要后台新建一个线程 ...

调度本身就是包括调入和调出

该用户从未签到

发表于 2016-12-23 22:51:30 | 显示全部楼层
风云轩 发表于 2016-12-23 11:47
调度本身就是包括调入和调出

LOD是显存里面的调入调出,Paged LOD是内存+显存的调入调出,Paged LOD应该是可以用的。光用LOD是没有用的。

该用户从未签到

发表于 2016-12-25 10:18:50 | 显示全部楼层
smash 发表于 2016-12-23 22:51
LOD是显存里面的调入调出,Paged LOD是内存+显存的调入调出,Paged LOD应该是可以用的。光用LOD是没有用 ...

如果只是显存的话,肯定是没任何意义的。肯定是内存中暂存一部分数据的。你说的对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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