【问题标题】:Collision Detection and Collision Response碰撞检测和碰撞响应
【发布时间】:2011-09-05 05:42:29
【问题描述】:

我一直在尝试使用 androids Opengl 来表示一些移动/旋转的对象。现在我想让它们发生碰撞并做出真实的反应。

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

例如,使用凸形,我想知道哪个顶点首先与哪个平面相撞,在帧之间的什么时间。这样我就可以知道每个形状应该如何响应其位置和旋转。

我可以用一条射线来描述每个顶点的运动,以及每一帧之间平面的运动。但是,我有点难过我将如何使用它来随着时间的推移找到他们未来的交叉点,以及这是否会在时间效率方面变得明智。我读过一些方法来减少对八叉树和命中框等复杂计算的需求。

我对这个主题还很陌生,所以任何关于如何处理这些问题的资源或建议都将不胜感激。感谢您的宝贵时间!

【问题讨论】:

    标签: android collision-detection


    【解决方案1】:

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

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

    blog I already gave links 包含有关该主题的平易近人的文章,如果您想深入了解,请参考进一步阅读。

    【讨论】:

    • 感谢您的链接,并为我提供了一些我试图解释的术语。这篇文章看起来很完美,对我的研究有帮助。至于我要解决的问题,我真的只是把它作为一个学习练习,所以信息和许多场景对我很有用。再次感谢!
    【解决方案2】:

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

    子弹物理(谷歌搜索)
    颂歌在 ville krumlinde 的帖子中显示

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

    【讨论】:

      【解决方案3】:

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

      http://realtimecollisiondetection.net/

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

      您还可以查看开源物理引擎的源代码,因为它们实现了非常详细的碰撞:

      http://www.ode.org/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-30
        • 1970-01-01
        • 2016-12-19
        • 2015-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多