【发布时间】:2014-12-11 14:06:07
【问题描述】:
我正在尝试实现球体碰撞。我理解它背后的数学原理。但是,我仍在查看教程,看看是否有更好更快的方法。我遇到了 nehe 的碰撞检测教程(http://nehe.gamedev.net/tutorial/collision_detection/17005/)。在本教程中,如果我理解正确,他会尝试检查两个球体是否在一个框架内发生碰撞,并且通过首先检查它们的路径是否相交,他会尽量不要错过它。然后尝试以某种方式模拟它。
我的方法是检查每一帧,球体是否发生碰撞并完成处理。我没有考虑检查交叉路口等。现在我有点困惑如何解决这个问题。
我的问题是,真的有必要尝试那么安全并检查我们是否错过了一帧的碰撞吗?
【问题讨论】:
-
如果球体在单个帧中超出其自身直径
-
比如,如果他们移动得太快,可能因为我们来不及评估而进入另一个球体?
-
这是一个准确性问题。您想仅检测当前帧中的冲突还是要检测此帧与下一帧之间的冲突?当中心之间的距离小于半径之和时,就会发生碰撞。如果你知道运动方程(位置作为时间的函数,通常是匀速运动),你会得到一个未知数(二次?)的方程。
-
是的,现在我想起来了,如果我们不检查,球体可能会变得疯狂并完全相交
-
它们确实可以在帧之间相交,但没有人会看到它发生,他们只能猜测。
标签: opengl collision-detection collision game-physics