查看: 1195|回复: 7

如何控制GEODE节点的显示?

[复制链接]

该用户从未签到

发表于 2011-7-18 22:32:00 | 显示全部楼层 |阅读模式
问一个比较菜鸟的问题,怎么控制geode节点的显示与不显示。我的模型中有好几个geode节点。
我目前用(在delta3d中,我觉得是类似的,)
osg::Node *onode=sta_daba1->GetOSGNode();
dtUtil::NodeCollector *collector = new dtUtil::NodeCollector(onode, dtUtil::NodeCollector::AllNodeTypes);
dtUtil::NodeCollector::GeodeNodeMap geodenodemap=collector->GetGeodeNodeMap();
for(int i=0;i<model_number;i++)
{
  osg::Geode * geo1 = collector->GetGeode(model_name[i]+"-GEODE");
  sta_daba1->GetMatrixNode()->addChild(geo1);
}
AddDrawable(sta_daba1.get());
目前可以控制显示,但是模型坐标变了,而且明显感觉到被切成一块块的感觉;模型本来看着很圆滑,是一个整体

该用户从未签到

 楼主| 发表于 2011-7-18 23:06:53 | 显示全部楼层
这是图片C:\Documents and Settings\Administrator\Application Data\Tencent\QQ\Temp\@~9Q8]O6W}(CUYA0J2XKF6P.jpg

该用户从未签到

 楼主| 发表于 2011-7-18 23:09:18 | 显示全部楼层
1.jpg 效果如图所示,在没有坐标变换的情况下,模型移动了一段距离。并且中间有明显裂缝

该用户从未签到

发表于 2011-7-19 08:20:19 | 显示全部楼层
您的问题和您给出的截图有什么关系?要让一个geode不显示,最快的方法是设置setNodeMask(0)

该用户从未签到

 楼主| 发表于 2011-7-19 14:23:05 | 显示全部楼层
如何遍历节点呢?我没找到能用index遍历的方法,好像都要知道geode的名称才能找到geode;
如osg::Geode *  GetGeode (const std::string &name)

该用户从未签到

发表于 2011-7-20 08:23:55 | 显示全部楼层
NodeVisitor可以遍历场景图

该用户从未签到

 楼主| 发表于 2011-7-20 16:26:17 | 显示全部楼层
谢谢!!

该用户从未签到

 楼主| 发表于 2011-7-20 21:27:07 | 显示全部楼层
非常感谢array,我的问题已经解决了,关键部分就是你说的setNodeMask(0);
呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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