我正在开发一种基于脉冲的物理引擎,但我对质量差异很大的物体存在问题。
在每一帧,引擎都会施加冲击来处理碰撞。脉冲在每对碰撞对象之间的多次迭代中应用。如果对象的质量大致相同,则效果很好。
但问题是,当放置一个重物时,在一个轻物体上方,重物会迫使轻物体进入地面。
问题的原因是,两个物体之间施加的脉冲太小,所以即使经过多次迭代,它也不足以抵消重物上的重力。
我相信有办法准确计算出所需的冲动,但我担心这太复杂了?所以大部分时间我都在寻找一些技巧来解决这个问题,但不会改变引擎的工作方式。
感谢您的任何想法!
答案 0 :(得分:2)
谷歌的'震动传播',基本的想法是你在重力方向(通常沿'y'轴)排序你的接触,并在接触解决你冷冻下半身(分配给他们无限质量,那是,invMass = 0.0f和invInertiaTensor应该是一个零矩阵),这样它们就不会“下沉”。我还没有实现,我正在努力使用自己糟糕的物理引擎。