查看: 925|回复: 4

节点增加最科学办法

[复制链接]

该用户从未签到

发表于 2014-8-10 12:33:17 | 显示全部楼层 |阅读模式
本帖最后由 abc-osg 于 2014-8-10 12:35 编辑

mViewer->setSceneData(mRoot.get());
系统运行过程中:
osg::ref_ptr<osg::Group> sketch=new osg::Group;
  osg::ref_ptr<osg:: PagedLOD> page = new osg:: PagedLOD();
sketch->addChild(page);  
  很多次增加
OpenThreads::Mutex *mux=new OpenThreads::Mutex();
mux->lock();
  mRoot->addChild(sketch);
mux->unlock();
这样写不会奔溃 ,  很笨拙


合理科学的办法 如何写?

该用户从未签到

发表于 2014-8-10 14:33:14 | 显示全部楼层
在事件处理器、回调、帧前帧后都可以

该用户从未签到

 楼主| 发表于 2014-8-11 08:16:40 | 显示全部楼层
用排斥锁如何?

该用户从未签到

发表于 2014-8-11 10:05:06 | 显示全部楼层
cenfer 发表于 2014-8-10 14:33
在事件处理器、回调、帧前帧后都可以

楼主精辟,
我的MFC+osg程序,总是莫名其妙遇到crash的问题,但同一个操作,有时候crash,有时候又不crash,

估计就是增删节点没有 在 ”事件处理器、回调、帧前帧后“ 执行,

小弟按照你说的方法,重新改写下。


除了这个原因,还可能有其它原因吗?,愿大侠指点,多谢

该用户从未签到

 楼主| 发表于 2014-8-11 14:38:32 | 显示全部楼层
问题解决 ->setDataVariance(osg::Object:YNAMIC);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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