当前位置 : 主页 > 手机开发 > 无线 >

碰撞检测 – 如何测试两个移动的2d定向边界框的碰撞?

来源:互联网 收集:自由互联 发布时间:2021-06-10
OBB具有位置(x,y),速度(x,y)和方向(矩阵).给定定期更新,OBB必须相互冲突,返回被认为成功的移动部分. 我已经查看了GPWiki-http://gpwiki.org/index.php/Polygon_Collision上的Polygon测试 – 但它没有考虑移
OBB具有位置(x,y),速度(x,y)和方向(矩阵).给定定期更新,OBB必须相互冲突,返回被认为成功的移动部分.

我已经查看了GPWiki-http://gpwiki.org/index.php/Polygon_Collision上的Polygon测试 – 但它没有考虑移动对象或完全在OBB中的对象.

“实时碰撞检测”一书涵盖了第4章:边界体积中的3D OBB,但3维测试方法明显比2D更复杂.

为了测试2个定向边界框之间的碰撞检测,我使用分离轴定理( SAT).事实上,SAT可用于任何2个凸形之间的碰撞检测.这种技术理解起来并不复杂,并且具有合理的性能.
该定理可以很容易地扩展到3D.

编辑:

该算法试图确定是否可以在两个对象之间拟合平面.如果存在这样的平面,则该对象被分离,并且不能相交.

要确定对象是否分开,只需将对象投影到平面的normal上,并比较间隔并查看它们是否重叠.

因此,显然有无数个平面可以放在两个分离的对象之间.但事实证明,你只需要测试一些飞机.

可以看出,对于盒子,待测试的分离平面是法线等于两个盒子的轴的平面.因此,对于2个盒子,您只需要测试4个分离平面.在4个平面中,一旦找到分隔框的分离平面,那么您就知道框不能相交,并且您返回无碰撞标记.

如果4个平面不能分开盒子,那么盒子必须是交叉的,并且你有碰撞.

网友评论