在游戏或者仿真虚拟环境中需要模拟现实中的物理碰撞,由于模型边缘复杂,在精确度不高的游戏中经常把它处理为正方体盒子,然后再检测物理碰撞,常用的算法为AABB碰撞盒算法
先遍历模型所有顶点遍历所有顶点,然后再不同方向上分别找出最大最小值来构成AABB盒子的最大最小顶点,模型就被处理成如下图的粗模型:
下面给出一个简化的原理图
如果物品没有发生碰撞的时候X轴上的顺序为X1,X2,X3,X4,但是X3和X2发生了交换,说明在X轴方向上面,物体的投影重合
同理在Y1,Y2,Y3,Y4上,Y2和Y3发生了交换,说明在Y轴方向上面,物体的投影重合
只有当物体在X轴和Y轴上发生投影重合的时候,说明两个图形有相交的部分
同理,在三维空间下,三个轴都发生投影重合的时候,说明两个盒子发生了穿透