查看: 4349|回复: 3

请问kdtree的作用?

[复制链接]

该用户从未签到

发表于 2010-3-14 10:38:58 | 显示全部楼层 |阅读模式
osgkdtree的例子寥寥数行。不明白怎么用。

原来构造osg的BVH树,不就已经形成了很多AABB的包围盒了么?
kdtree 和这些AABB的包围盒是什么关系?是不是用kdtree又生成了一组包围盒?
文档里说是为了提高碰撞检测质量,如何用?如何调用kdree?

没有头绪......请帮帮忙。

该用户从未签到

发表于 2010-3-14 13:50:23 | 显示全部楼层
kdtree调用很简单~~加上下面这行代码就可以了~~~~~
osgDB::Registry::instance()->setBuildKdTreesHint(osgDB::ReaderWriter::Options::BUILD_KDTREES);
然后碰撞检测的时候调用IntersectionVisitor::setUseKdTreeWhenAvailable就可以相应提高碰撞检测效率,,,至于区别,,,kdtree就是二分树,你对比相关资料吧,,我就不多COPY~~~~~~

该用户从未签到

发表于 2010-3-14 23:48:53 | 显示全部楼层
KD树是一种二叉树形式的数据结构,非常适合碰撞检测中应用,OSG中的KD树同样是为了提高交集测试的效率而生的。

如果您对KD树的原理感兴趣,那么不妨在网络上搜索一下相关的资料;如果您熟悉它的另一个同门师弟:BSP树的话,那么想必学习起来会得心应手

该用户从未签到

发表于 2010-3-15 21:00:09 | 显示全部楼层
如同array达人所说,KDTree是一种带包围合的树,提高交集测试效率的。。。。。这在三维场景管理结构中比较常见
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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