球体球体碰撞的方法

时间:2014-12-10 11:09:00

标签: opengl collision-detection collision game-physics

我正在尝试实施球体球体碰撞。我理解它背后的数学。但是,我仍然在寻找教程,看看是否有更好更快的方法。我遇到了nehe的碰撞检测教程(http://nehe.gamedev.net/tutorial/collision_detection/17005/)。在本教程中,如果我理解正确,他会尝试检查两个球体是否在一个框架内发生碰撞,并且他试图不要错过它,首先检查它们的路径是否相交。然后尝试以某种方式模拟它。

我的方法是检查每一帧,球体是否碰撞并完成。我没有考虑检查交叉路口等。现在我有点困惑如何处理问题。

我的问题是,是否真的有必要尝试安全并检查我们是否错过了一帧的碰撞?

1 个答案:

答案 0 :(得分:0)

在编写碰撞检测算法时,重要的是识别物体正在离散时间步长移动,这与现实世界不同。在典型的现代游戏中,物体将以每帧0.016秒的时间步长移动(通常具有较小的固定或可变时间步长)。

可能两个以非常高的速度移动的球体可以在单个框架内相互穿过,并且在执行积分后不会在彼此的边界球体内。这个问题被称为Tunneling,并且有多种方法可以解决问题,每种方法都有不同的复杂性和成本。有些选项是swept volumesMinkowski Addition

选择正确的算法取决于您的应用程序。碰撞需要多精确?它对您的应用程序至关重要,还是可以避免一些误报/肯定。通常,碰撞检测越精确,您在性能上的支付就越多。

Similar question here