查看: 1741|回复: 8

如何让Geode中的某个PrimitiveSet不可见

[复制链接]

该用户从未签到

发表于 2010-12-28 15:28:37 | 显示全部楼层 |阅读模式
我在OSG绘制过程中,将一些图形以添加primitive形式加入到了Geode中。
在模拟过程中,需要将一些物体Primitive变为不可见。
我可以通过Primitive的编号获得他们的指针,但是做什么设置能够使Primitive不可见呢?
一时没有想到很好的方法,恳请大家帮帮忙。

该用户从未签到

发表于 2010-12-28 16:56:24 | 显示全部楼层
既然要单独操作,就多建几个Geode,对Geode加到Switch节点下或者其他方法控制可见性

该用户从未签到

发表于 2010-12-28 16:58:40 | 显示全部楼层
您只能暂时删除这个primitiveSet,并且在之后把它重新添加回来

该用户从未签到

 楼主| 发表于 2010-12-28 17:26:24 | 显示全部楼层
自己建的模型可以多设几个Geode,但是由3ds Max导入的模型中只有一个Geometry,整个模型都三角化了,想要对导入模型在模拟过程中动态修改,就只能控制Geometry中的Primitive了。看来如果没有其他的好的方法就只能先暂时删除primitiveset了,不过,这样会改变模型的primitiveset的顺序,从而使得下一次通过getPrimitiveSet (unsigned int pos)得到的primitiveset指针不匹配。真的没有别的办法吗?

该用户从未签到

发表于 2010-12-28 17:40:01 | 显示全部楼层
本帖最后由 zhpch_1980 于 2010-12-28 17:50 编辑

DrawAble级别的可修改原码

该用户从未签到

发表于 2010-12-28 20:27:15 | 显示全部楼层
那你建模的时候分开啊~~

该用户从未签到

发表于 2010-12-28 20:46:09 | 显示全部楼层
一个办法,保留PR。。。,但是删除或置空顶点,我以前这么做过。

该用户从未签到

 楼主| 发表于 2010-12-29 08:42:34 | 显示全部楼层
如果在建模的时候可以将分开自然是好,但是有些情况难以分开建模,如原来已建好的模型,或者通过数据文件生成的模型。这种情况下,想控制其中的局部就需要控制Primitiveset了。
将Primitive的顶点置空是个好办法。不过我还有一个问题,我在Geometry中有一个总的VertexArray,然后通过引索数组绘制了不同PrimitiveSet。问题是通过VertexArray操作顶点,也会影响到其他的Primitive,最好只改变Primitive的引索数组。
那么问题是每一个Primitive都有一个引索数组,通过getVertexIndices ()得到的引索数组是哪个呢?
还请大家帮忙。

该用户从未签到

发表于 2010-12-29 08:50:44 | 显示全部楼层
getVertexIndices()事实上与PrimitiveSet无关,它是为了保持与早期的OpenGL的兼容性而设置的,请不要使用它。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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