查看: 1192|回复: 7

请教下如何移除整个场景

[复制链接]

该用户从未签到

发表于 2014-11-11 20:08:41 | 显示全部楼层 |阅读模式
由于我需要做场景切换,想直接将整个场景移除掉,我现在用removeChild直接将根节点下的节点全部移除掉了,虽然画面上已经清空,但内存并没有释放出来,然后看了下往上说是智能指针的_refCount值不为1造成的,但我看了下被移除的节点_refCount在移除前已经为1了,请问下是否与其子节点的_refCount还有关系?

该用户从未签到

 楼主| 发表于 2014-11-12 11:23:46 | 显示全部楼层
问题解决,还是要感谢下ARRAY的宝书!

该用户从未签到

发表于 2014-11-12 12:54:21 来自手机 | 显示全部楼层
liontan925 发表于 2014-11-12 11:23
问题解决,还是要感谢下ARRAY的宝书!

怎么解决的啊,哪本书,那个例子

该用户从未签到

发表于 2015-1-19 16:25:51 | 显示全部楼层
我也是这个问题,请问您是怎么解决的? 具体是什么地方的问题呢, 求指教!

该用户从未签到

发表于 2015-1-19 19:07:25 | 显示全部楼层
兄弟, 十分紧急啊, 怎么解决的呢, 哪本书, 哪个实例? 多谢了!

该用户从未签到

 楼主| 发表于 2015-1-27 09:20:07 | 显示全部楼层
iBelieve 发表于 2015-1-19 19:07
兄弟, 十分紧急啊, 怎么解决的呢, 哪本书, 哪个实例? 多谢了!

OSG三维渲染引擎设计与实践 关于智能指针那一章

该用户从未签到

发表于 2015-2-2 16:41:20 | 显示全部楼层
liontan925 发表于 2015-1-27 09:20
OSG三维渲染引擎设计与实践 关于智能指针那一章

想和您探讨个问题:
关于我这边OSG渲染策略是这样的,建立一个场景根结点,然后读取结点数据(在数据库中存储的),这样一个场景就构建出来了。
关于场景更新策略是这样的,更换结点数据之前调用OsgViewer::viewerBase::setDone(bool done), done=false, 停止帧循环, 然后新增和
删除结点,在删除结点的时候发现, 结点的引用计数都已经为0,但是内存没有被释放, 修改完场景数据之后置done=true, 重新开始帧循环,
移动摄像头位置, 可以实现场景的动态更新, 新增的结点出现在了场景中, 删除的结点也从场景中剔除了, 可是内存没什么变化。

我这里是根据摄像头的位置, 获取周边指定范围内的场景数据的。
是我的策略有问题, 还是有哪些问题没有考虑到呢?

我也尝试过逐级删除数据,可是效果是一样的, 内存只增不降。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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