查看: 2273|回复: 1

包围盒和遮挡

[复制链接]

该用户从未签到

发表于 2009-12-15 09:45:22 | 显示全部楼层 |阅读模式
翻了一下论坛以前的文章,有关包围盒和遮挡的问题,判断一个物体是否被遮挡,
除了使用IntersectionVisitor外,还可以使用AABB么?
例如getRenderBinDetails什么的,取得node的深度。
能分析分析?以下是以前的文章部分:

1、osg::BoundingBox的作用:
首先这个类并非直译成“包围盒”那么简单:它的确可以用来做简单的碰撞检测,代码量比动辄使用IntersectionVisitor也要少一些;但它的更重要的作用是实现场景的筛选(CULL),即,当视图中包含场景的大量元素时,使用BoundingBox来判断有些元素是否被其它的元素遮挡,以及有些元素是否在用户能看到的范围以外,从而跳过它们的渲染,以加快场景刷新的速度。如果CULL这一步的计算量过大,抵消了它对加快渲染速度的贡献,甚至成了负担的话,那么也就失去了场景筛选的意义了

该用户从未签到

发表于 2009-12-15 10:49:12 | 显示全部楼层
IntersectionVisitor就是使用AABB盒先作判断,然后再对具体的几何数据进行求交的。因此效率很高

如果想使用最新的OpenGL遮挡查询扩展,可以考虑试用OcclusionQueryNode类;osgocclusionquery例子用于演示它的用法。不过您首先要确定自己的显卡支持这一扩展。

自己通过深度来判断遮挡,或者效率低下的OpenGL拾取模式,个人认为在实际应用中都不太现实。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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