Physics 基于脉冲的物理学-将重物体叠加在轻物体上

Physics 基于脉冲的物理学-将重物体叠加在轻物体上,physics,game-physics,Physics,Game Physics,我正在开发一个基于脉冲的物理引擎,但是我有一个大质量差物体的问题 在每一帧,引擎都会应用脉冲来处理碰撞。脉冲在每对碰撞对象之间的多次迭代中应用。如果对象的质量大致相同,则此操作效果良好 但问题是,当把一个重的物体放在一个轻的物体上时,重的物体会迫使轻的物体进入地面 问题的原因是,两个物体之间施加的脉冲太小,因此即使经过多次迭代,也不足以抵消重物上的重力 我相信有很多方法可以精确计算所需的冲动,但我担心这太复杂了?所以我主要是在寻找一些技巧来解决这个问题,但不改变引擎的工作方式 谢谢你的建议 谷歌

我正在开发一个基于脉冲的物理引擎,但是我有一个大质量差物体的问题

在每一帧,引擎都会应用脉冲来处理碰撞。脉冲在每对碰撞对象之间的多次迭代中应用。如果对象的质量大致相同,则此操作效果良好

但问题是,当把一个重的物体放在一个轻的物体上时,重的物体会迫使轻的物体进入地面

问题的原因是,两个物体之间施加的脉冲太小,因此即使经过多次迭代,也不足以抵消重物上的重力

我相信有很多方法可以精确计算所需的冲动,但我担心这太复杂了?所以我主要是在寻找一些技巧来解决这个问题,但不改变引擎的工作方式


谢谢你的建议

谷歌搜索“冲击传播”,其基本思想是按重力方向(通常沿“y”轴)对触点进行排序,在触点解析过程中冻结下半身(为其指定无限质量,即invMass=0.0f,invInertiaTensor应为零矩阵),以便它们不会“下沉”。我还没有实现这一点,我正在用我自己蹩脚的物理引擎挣扎。

你需要支持(至少)身体和地面的弹性变形。你如何计算冲量?我计算每次碰撞时的冲量,就好像它没有受到任何其他碰撞的影响一样。但是通过迭代,它通常会找到正确的“总冲动”。谢谢你的建议,我将对此进行研究。我认为这可能有助于解决重力的特殊情况。然而,我真的很想找到一个更普遍的案例解决方案。例如,如果向心力会迫使物体相交,我不知道如何用激波传播来解决这个问题。。。我真的应该按y轴位置将其分块还是进行实际路径成本分析?