查看: 992|回复: 4

请教一个节点管理的问题

[复制链接]

该用户从未签到

发表于 2013-4-5 17:21:22 | 显示全部楼层 |阅读模式
请问osg中如何高效的管理节点。
我现在用一个ref_ptr<group> managerRoot作为管理根节点,存储了一群管理子节点ref_ptr<group> Sub1、Sub2等等,每个子节点下存放了一个叶节点geode(目前只有一个叶节点,以后还计划添加其他内容),叶节点下是一个geometry,画了将近2万个quad。
在绘制时通过ui控制场景更新。
每次更新首先清除场景根节点sceneroot的所有子节点:
sceneroot->removechildren(0,sceneroot->getNumChildren());
然后根据ui选择,动态从管理根节点managerRoot中取出某个子节点(getchild)放入场景的根节点中(addchild)。
这个过程有两个问题:
1是切换过程还是不很流畅,有1秒左右的卡顿;
2是我按照顺序(从0到managerRoot->getNumChildren()-1)将管理根节点的所有子节点在场景中更新一边之后,再次载入第0个节点时,场景就会变得非常卡。

在此诚心请教:1是如何能让节点的切换更加流畅,就算载入过程的延迟不可避免,能否采用手段让他不要干扰到场景的绘制。2是第二个问题产生的原因和解决方案是什么。
另外我感觉现在用的节点管理方法显得很业余很蠢,有没有什么更好的方法来处理我遇到的问题。谢谢。

该用户从未签到

 楼主| 发表于 2013-4-6 17:18:52 | 显示全部楼层
求指导啊。。。用什么方法实现场景中节点的切换比较好呢?

该用户从未签到

发表于 2013-4-7 07:55:31 | 显示全部楼层
场景太大 考虑分页 和 线程加载 ProxyNode

该用户从未签到

 楼主| 发表于 2013-4-8 19:47:34 | 显示全部楼层
liuzhiyu123 发表于 2013-4-7 07:55
场景太大 考虑分页 和 线程加载 ProxyNode

昨天换了个做法,先将每个那些quad存成ive模型,然后根据ui消息用proxynode按需要读进来,但是不知道怎么平稳的进行节点切换。每次都removechild后setfilename,旧节点消失大概1秒新节点才进来。有没有办法让节点替换不间断进行呢?

该用户从未签到

发表于 2013-4-9 07:38:08 | 显示全部楼层
这些就是程序设计的问题了,加载肯定是有延时的,尤其是在大场景中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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