我一直在尝试使用 androids Opengl 来表示一些移动/旋转的对象。现在我想让他们碰撞并做出现实的反应。
通过研究这个问题,我可以找到许多资源,这些资源建议我如何确定两个 3D 形状是否在当前帧中发生碰撞(或者它们是否会在下一帧中发生碰撞)。但是,我无法找到描述如何获取有关已发生碰撞的信息的资源。
例如,使用凸形状,我想知道哪个顶点首先与哪个平面发生碰撞,在帧之间的什么时间发生。这样我就可以知道每个形状应如何响应其位置和旋转。
我可以用射线描述每个顶点的运动,以及每个帧之间平面的运动。然而,我有点困惑如何使用它来找到它们未来的交叉点,以及这是否可能节省时间效率。我读过一些减少复杂计算需求的方法,例如八叉树和命中框。
我对这个主题相当陌生,因此任何有关如何处理这些问题的资源或建议将不胜感激。感谢您的时间!
对于碰撞检测,您正在寻找的解决方案称为连续碰撞检测,解释可以是在这里找到 http://www.wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/。检测两个物体之间的接触相对简单,尤其是在忽略角速度的情况下,但如果您要对两个以上对象进行模拟,则需要全局求解 TOI,因为碰撞顺序很重要,并且无法通过检查孤立碰撞来确定对(没那么简单)。
此外,您还应该说明您要解决的具体问题 - 因为找到 TOI(影响时间)并不是一项简单的任务在某些情况下,近似可能是完全有效的解决方案 http://www.wildbunny.co.uk/blog/2011/03/25/speculative-contacts-an-continuous-collision-engine-approach-part-1/(例如游戏模拟)。
The 博客我已经给出了链接 http://www.wildbunny.co.uk/blog/author/paulfirth/包含有关该主题的平易近人的文章,如果您想深入了解,还可以参考进一步阅读。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)