我一直在用手代表一些移动/旋转对象使用
Android的Opengl.现在我想允许他们碰撞和现实地回应.
研究这个问题,我可以找到许多资源,建议我如何确定两个3d形状是否在当前帧中相撞(或者它们是否会在下一帧中碰撞).但是,我无法找到描述如何获取有关发生冲突的信息的资源.
例如,使用凸形,我想知道哪个顶点首先与哪个平面碰撞,在帧之间的什么时间.这样我就可以知道每个形状应该如何响应它的位置和旋转.
我可以描述每个顶点的运动与一个射线,以及每个帧之间的平面的运动.然而,我有点迷茫了,我将如何使用它来找到他们未来的交叉点随着时间的推移,以及这是否可能有时间效率明智.我已经阅读了一些减少复杂计算需求的方法,如八进制和命中框.
我对这个话题来说是相当新鲜的,所以任何资源,或者通常处理这些问题的建议将不胜感激.感谢您的时间!
解决方法
对于碰撞检测,您正在寻找的解决方案称为连续碰撞检测,解释可以为
found here.检测两个物体之间的触点相对简单,特别是如果忽略角速度,但如果您正在进行具有两个以上对象的模拟您将需要在全球解决TOI,因为碰撞的顺序将是重要的,不能通过检查隔离的碰撞对来确定(不是那么简单).
此外,您应该说明您正在尝试解决的具体问题 – 因为查找TOI(影响时间)不是一个简单的任务and approximation could be perfectly valid solution in a certain scenario(比如游戏模拟).
blog I already gave links包含有关该主题的平易近人的文章,如果您想进一步阅读,请参阅进一步的阅读.