2011-05-31 286 views
10

我一直在尝试用手表示一些使用androids Opengl的移动/旋转对象。现在我想让他们碰撞并做出现实回应。碰撞检测和碰撞响应

研究这个问题,我可以找到很多资源,这些资源可以帮助我确定两个3d形状是否在当前帧中发生碰撞(或者它们是否会在下一帧中发生碰撞)。但是,我无法找到描述如何获取发生碰撞的信息的资源。

例如,使用凸形状,我想知道哪个顶点首先在哪个平面与哪个平面之间发生碰撞。这样我就可以知道每个形状应该如何在其位置和旋转中作出反应。

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

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

回答

4

对于碰撞检测,您正在寻找的解决方案称为连续碰撞检测,解释可以是found here。检测两个物体之间的接触相对简单,尤其是在忽略角速度的情况下,但是如果用两个以上的物体进行模拟,则需要全局求解TOI,因为碰撞的次序很重要,而且不能通过检查孤立的碰撞来确定对(不那么简单)。

你也应该说明你正在试图解决的具体问题 - 因为找到TOI(影响时间)不是一项简单的任务and approximation could be perfectly valid solution in a certain scenario(例如游戏模拟)。

blog I already gave links要包含关于这个主题平易近人的文章和参考进一步阅读,如果你想超越。

+0

感谢您的链接,并给我一些我试图解释的条款。这篇文章看起来很完美,并会帮助我的研究。至于我试图解决的问题,我只是将其作为学习练习,因此信息和许多场景对我来说都很有用。再次感谢! – groucho 2011-05-31 08:07:13

1

停止重新发明轮子d尝试已经测试的解决方案

Bullet物理(谷歌搜索)由威乐krumlinde

* PS在后显示

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