包围盒
Bounding Volume (AABB / OBB)AABB/OBB进阶用盒子、球等简单形状包住复杂物体,先粗筛再精算碰撞。
包围体是能完全包住一个物体的简单几何体,用来加速碰撞检测:两个包围体不相交,里面的物体一定不碰,可直接跳过精确计算。最常用的是 AABB(轴对齐包围盒,各边平行于世界坐标轴,相交判断只需逐轴比较最小和最大坐标,但物体一转就要重算,还可能包进大片空白)和 OBB(有向包围盒,跟着物体自身坐标系旋转,包得更紧,判断更费时);此外还有包围球、胶囊体、k-DOP 和凸包。把大量包围体组织成树就是包围体层次(BVH):父节点不相交,子节点都不用再查,查询量从线性降到对数级。物理引擎和运动规划里,通常先用 AABB 做宽相粗筛出可能相撞的物体对,再在窄相用 GJK 等算法精确计算。
例子碰撞检测库 FCL 的宽相管理器一般推荐动态 AABB 树;对三角网格模型,它默认建立 OBBRSS(OBB 与矩形扫掠球的组合)类型的 BVH 做窄相查询。
- 也叫
- 包围体、轴对齐包围盒、有向包围盒、包围体层次 BVH、Bounding Volume Hierarchy
- 相关
- 碰撞检查、宽相 / 窄相碰撞检测、GJK 算法、碰撞体、凸分解、FCL
- 来源
- Wikipedia: Bounding volume
Wikipedia: Bounding volume hierarchy
FCL (Flexible Collision Library) README