包围盒

包围盒

包围盒是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理)。包围体类型包括球体、轴对齐包围盒(AABB)、有向包围盒(OBB)、8-DOP 以及凸壳。

包围盒广泛地应用于碰撞检测,比如射击、点击、相撞等,每一个物体都有自己的包围盒。因为包围盒一般为规则物体,因此用它来代替物体本身进行计算,会比直接用物体本身更加高效和简单。

AABB 与 OBB 示意

目前广泛应用的是 AABB 和 OBB 包围盒,其中 AABB 包围盒更常见。因为它的生成方法很简单,因它与坐标轴是对齐的。但它也有不足,它不随物体旋转,可以看出当图中的老虎沿着 Z 轴方向站立时,AABB 包围盒还和老虎比较贴合,但当老虎转了一个角度后,AABB 包围盒便增加了较大的空隙,对于较精确的碰撞检测效果不太好。这时就需要 OBB 包围盒,它始终沿着物体的主成分方向生成最小的一个矩形包围盒,可以随物体旋转,可用于较精确的碰撞检测。