物理引擎是如何解决重力使得物体塌陷的问题的?

我现在的处理步骤是:
根据物体AABB两两找出AABB重叠的一组物体 →
根据物体形状求出碰撞点和碰撞方向和相互嵌入的距离 →
根据碰撞点, 碰撞方向, 物体速度求出碰撞产生的冲量并施加给两个物体得到碰撞后的速度 →
因为只用速度没法完全分离物体所以根据嵌入距离等直接平移物体使得两个物体移动到刚好接触的位置 →
用速度更新物体位置

然后在以上随便一步插入"对物体施加重力"(因为总体是循环的把上面的步骤随意改变顺序结果也差不多), 就会变成下面这样
图片描述
 
或许是因为持续的重力会使得多个物体相互嵌入, 位置修正前后物体都是嵌入的结果位置修正跟不上重力累加造成的塌陷, 另外一次只能求两个物体的碰撞后速度, 可能会有类似支持力和重力不平衡的效果

大致上多个物体保持某一速度的同时向一个方向运动就会有这样的问题, 翻一遍了box2d的代码但没个导读也找不出哪块代码用什么方法来解决这个问题的...

阅读 3.8k
1 个回答
新手上路,请多包涵

请问你解决了吗,我也有类似的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进