碰撞检测和碰撞响应

我一直在试图用Android的Opengl代表一些移动/旋转的对象。 现在我想让他们碰撞和现实回应。

研究这个问题,我可以find很多资源,这些资源可以帮助我们确定两个三维形状是否在当前帧中发生碰撞(或者是否会在下一帧中发生碰撞)。 但是,我很难find描述如何获得发生碰撞的信息的资源。

例如,使用凸形状,我想知道哪个顶点首先在哪个平面上与哪个平面发生碰撞。 这样我可以知道每个形状应该如何响应它的位置和旋转。

我可以用光线描述每个顶点的运动,以及每个帧之间的平面运动。 然而,我有点难以理解,我将如何利用这一点来find未来的十字路口,以及这样做是否有可能提高效率。 我已经阅读了一些减less复杂计算(如octtrees和hit box)的方法。

我对这个主题相当陌生,所以任何资源,或通常如何处理这些问题的意见,将不胜感激。 感谢您的时间!

Solutions Collecting From Web of "碰撞检测和碰撞响应"

对于碰撞检测,您正在寻找的解决scheme称为连续碰撞检测,可以在这里find解释。 检测两个物体之间的接触相对简单,特别是如果忽略angular速度,但是如果您正在使用两个以上的物体进行模拟,则需要全局地求解TOI,因为碰撞的顺序很重要,不能通过检查孤立的碰撞来确定对(不是那么简单)。

你也应该说明你要解决的具体问题 – 因为findTOI(碰撞时间)并不是一件容易的事情,在某些情况下 (如游戏模拟) 近似可能是完全有效的解决scheme 。

我已经给了这个博客链接 ,包含关于这个主题的平易近人的文章,如果你想进一步阅读,请参考进一步阅读。

有关于这个主题的书籍如:

http://realtimecollisiondetection.net/

http://www.geometrictools.com/Books/Books.html

您也可以检查开源物理引擎的源代码,因为它们实现了非常详细的冲突:

http://www.ode.org/

停止重新发明轮子,并尝试已经testing的解决scheme。

子弹物理(谷歌search)
在ville krumlinde的post中显示

* PS: *碰撞检测是一个复杂的话题,涉及到一些毛茸茸的math。 即使你在使用别人的图书馆。 🙂