查看: 3563|回复: 9

osg::Geometry顶点的内部优化

[复制链接]

该用户从未签到

发表于 2012-9-16 20:47:43 | 显示全部楼层 |阅读模式
本帖最后由 wanghuisoftware 于 2012-9-16 21:00 编辑

做了一个实验,遇到以下问题,还请大家指教。
  实验条件及结果:
            1、有批量的三角面片,每个三角面片包含三个顶点,及其颜色数组;
            2、采用两个方法将这些三角面片在OSG中绘制显示,最终得到了两种不同的图形,如下图所示:
                整个图共用一个顶点数组.jpg    和   每个面片一个绘制体.jpg
                                                                                                                                                                                                         3、第一个图形的绘制方法是将这些三角面片的顶点放至一个顶点数组中,将顶点数组设置到osg::Geometry中,采用循环的方式,将这些osg:rimitiveSet::TRIANGLES添加至同一个osg::Geometry中。
            4、第二个图形的绘制方法是将每一个三角面片的顶点放至一个顶点数组中,将生成的osg::PrimitiveSet::TRIANGLES添加至osg::Geometry中,即每个三角面片对应一个osg::Geometry。
            5、步骤3、4中生成的osg::Geometry均添加到一个osg::Geode中,采用4中的方法绘制出来的图形(后一幅图)符合实际的,而3中的方法(前一幅图)带有明天的痕迹;而两种方法的其余设置均相同,均采用自动生成法线。不知是什么原因造成的。
            6、试着减少这些三角面片,按照3和4中的方法绘制出来的部分图形分别如下图所示:
                所有顶点放至一个绘制体中.jpg   和    每个顶点一个绘制体.jpg
            7、通过6中的图形对比,方法3生成的圆面(前一幅图)明显较光滑,是否可能OSG内核对osg::Geometry的所有顶点进行了优化或者简化导致这些的结果,如果是,请问如何禁用这种简化模式;如果不是,大家觉得会是什么原因。

该用户从未签到

发表于 2012-9-17 07:56:06 | 显示全部楼层
OSG 默认情况下 是不会进行简化

该用户从未签到

 楼主| 发表于 2012-9-17 09:00:47 | 显示全部楼层
liuzhiyu123 发表于 2012-9-17 07:56
OSG 默认情况下 是不会进行简化

那 觉得这两种不同结果产生的原因是什么呢?

该用户从未签到

发表于 2012-9-17 09:42:12 | 显示全部楼层
关注

该用户从未签到

发表于 2012-9-17 15:26:24 | 显示全部楼层
步骤4,每个三角面片对应一个osg::Geometry
这不是造成非常非常多的Geometry???一个Geometry就是一个渲染列表,这会造成渲染效率非常非常低下。
难道测试中没出来么?
请问你的顶点法线是如何生成的呢?Smooth?

该用户从未签到

 楼主| 发表于 2012-9-17 22:03:07 | 显示全部楼层
osger 发表于 2012-9-17 15:26
步骤4,每个三角面片对应一个osg::Geometry
这不是造成非常非常多的Geometry???一个Geometry就是一个渲 ...

对,就是因为4中的方法占用了大量的显示列表(这方面array介绍过),所以采用3中的方法,结果出现了明显的痕迹。法线是osg自动生成法线osgUtil::SmoothingVisitor::smooth

该用户从未签到

发表于 2012-9-18 08:59:06 | 显示全部楼层
本帖最后由 x-fi 于 2012-9-18 09:00 编辑

你在3ds max 建模的时候模型加一个smooth 修改器,勾选auto smooth,输出就是正确的效果。用建模的角度来说,就是模型的光滑组出问题了。

该用户从未签到

 楼主| 发表于 2012-9-18 09:07:44 | 显示全部楼层
x-fi 发表于 2012-9-18 08:59
你在3ds max 建模的时候模型加一个smooth 修改器,勾选auto smooth,输出就是正确的效果。用建模的角度来说 ...

谢谢你,我这是autocad建模的内容,autocad中有这项设置吗?

该用户从未签到

发表于 2012-9-18 09:19:06 | 显示全部楼层
wanghuisoftware 发表于 2012-9-18 09:07
谢谢你,我这是autocad建模的内容,autocad中有这项设置吗?

你自己看看吧,我不用autocad建模,所以不了解。

该用户从未签到

发表于 2012-9-24 09:36:10 | 显示全部楼层
osgUtil::SmoothingVisitor::smooth
我用的就是这个,有些时候不能得到理想的结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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