碰撞检测,最主要的就是包围盒,常用的包围盒有Sphere包围盒、AABB包围盒、OBB包围盒、k-Dops
包围盒以及固定方向的凸包,先介绍一下简单的Sphere包围盒(球形包围盒)吧。
Sphere包围球法:包含目标对象的最小球体,紧密性差,包围的目标对象会产生大量的冗余空间,剔除效率低,但是其构
造简单、存储空间小且由于球的对称性,不受旋转变化的影响,只需要根据平移量对球心位置进行变化,不需要对包围球结构进
行任何更新操作,适用于检测精度要求不高的运动环境,且很容易计算两个物体的包围球是否发生碰撞。包围球一般表示为:
其中xmax、xmin、ymax、ymin、zmax、zmin分别表示物体投影在x、y、z坐标轴上的最大最小值,Ox、Oy、Oz为最小
包围球的球心,r为半径。
物体形状接近球体时包围球算法的效率较高,Sphere-Sphere 相交检测较为简单,可根据两个包围球的中心距离与半径之和的关系判断,即对于两个包围球(cl,rl)和(c2,r2),如果球心距离小于两球半径之和,即,则两包围球相交(如图下
图)。为方便计算,避免开根号,则比较球心距离的平方与半径和的平方。