查看: 2502|回复: 6

请教关于三角面的问题!

[复制链接]

该用户从未签到

发表于 2009-6-28 15:51:36 | 显示全部楼层 |阅读模式
请教一下大家,对于在osg中的模型,能否获得模型某个三角面的信息,例如三角面的三个顶点坐标,面法线向量之类?如何查找所有的三角面?并对其中一个进行操作?谢谢

该用户从未签到

发表于 2009-6-28 16:16:27 | 显示全部楼层
可以,,写一个遍历器遍历几何体就可以得到信息,,不过,,操作的话,可能要涉及重新绘制~~·

该用户从未签到

发表于 2009-6-28 21:22:12 | 显示全部楼层

回复 楼主 的帖子

按照FlySky说的做就是了,遍历每一个Geometry中的Drawable,从中就可以获得顶点数组
、顶点索引数组,法线数组、颜色等等,对这些信息进行修改,并重新创建Geometry,保存就行了

[ 本帖最后由 ghczhaolei 于 2009-6-28 21:23 编辑 ]

该用户从未签到

发表于 2009-6-28 22:46:09 | 显示全部楼层
也可以使用TriangleFunctor,事实上这可以迅速地遍历任意模型的所有三角面。参看SmoothingVisitor的源代码

该用户从未签到

 楼主| 发表于 2009-7-3 18:02:15 | 显示全部楼层
我想请教的是,好多地方都用到了两两三角形的求交运算,但是,一个模型有这么多三角形,如何选出我想要的特定三角形呢?在模型的生成时,模型的所有三角面是按什么顺序存储的?能不像类似指针数组那样,直接就可以调用?还有一个问题就是,如果我有多个顶点,能否知道模型的哪个三角面包含了这些顶点?并单独对这些三角面进行操作?谢谢

该用户从未签到

发表于 2009-7-3 23:48:44 | 显示全部楼层
osg中没有太多的地方用到了三角形之间的求交运算。模型数据的存储与OpenGL图元的存储顺序有关,不可以直接调用,因为很多时候图元的类型不一定是三角面片。TriangleFunctor是把图元转换到三角面的最好的方法。没有办法知道哪些三角面包含哪些顶点,仍然因为图元类型不一定是三角面~~

该用户从未签到

发表于 2011-10-26 09:49:43 | 显示全部楼层
按照FlySky说的做就是了,遍历每一个Geometry中的Drawable,从中就可以获得顶点数组
、顶点索引数组,法线 ...
ghczhaolei 发表于 2009-6-28 21:22



    关于这个方法,有没有人实现过???给点具体的指示吧。谢谢。谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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