AABB包围盒、OBB包围盒、包围球的比较

作者:雨辰 发布于:2017-6-22 11:08 Thursday 分类:遇到的一些问题

1) AABB 包围盒: AABB 包围盒是与坐标轴对齐的包围盒, 简单性好, 紧密性较差(尤其对斜对角方向放置的瘦长形对象, 采用AABB, 将留下很大的边角空隙, 导致大量没必要的包围盒相交测试)。当物体旋转之后需对AABB 进行同样的旋转并更新; 当物体变形之后只需对变形了的基本几何元素对应的包围盒重新计算; 然后可以自下向上由子结点的AABB 合成父结点的AABB, 最后进行包围盒树的更新。

2) OBB 包围盒: OBB 碰撞检测方法紧密性是较好的, 可以大大减少参与相交测试的包围盒的数目, 因此总体性能要优于AABB 和包围球, 并且实时性程度较高。当物体发生旋转运动后, 只需对OBB 进行同样的旋转即可。因此, 对于刚体间的碰撞检测, OBB 不失为一种较好的选择。迄今为止, 还没一种有效的方法能够较好地解决对象变形后OBB 树的更新问题, 而重新计算每个结点的OBB 的代价又太大。所以OBB 不适用于包含软体对象的复杂环境中。

3) 包围球: 包围球碰撞检测方法是用球体包围整个几何体, 无论是几何体还是相交测试都很简单; 但是它的紧密性太差。因为除了在3 个坐标轴上分布得比较均匀的几何体外, 几乎都会留下较大的空隙, 需要花费大量的预处理时间, 以构造一个好的层次结构逼近对象。当物体变形之后,包围球树需要重新计算。因此,它是使用得比较少的一种包围盒。当对象发生旋转运动时, 包围球不需作任何更新, 这是包围球的较优秀特性; 当几何对象进行频繁的旋转运动时, 采用包围球可能得到较好结果。

 

标签: 游戏业务架构设计 Unity3D

发表评论:

雨辰 joyimp|@2011-2017 京ICP备16030765号