4

我正在开发一个基于脉冲的物理引擎,但我对质量差异很大的物体有疑问。

在每一帧,引擎都会应用脉冲来处理碰撞。脉冲在每对碰撞对象之间进行多次迭代。如果物体的质量大致相同,这很有效。

但问题是,当将重物放在轻物上时,重物会先将轻物压入地面。

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

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

感谢您的任何想法!

4

1 回答 1

3

谷歌的“冲击传播”,基本思想是你在重力方向(通常沿着'y'轴)对你的接触进行排序,在接触解决过程中你冻结下半身(分配给他们无限的质量,即 invMass = 0.0f 和 invInertiaTensor 应该是一个零矩阵),这样它们就不会“下沉”。我还没有实现,我正在为自己的糟糕物理引擎而苦苦挣扎。

于 2010-11-27T22:08:31.790 回答