测验:位置修正与迭代
用冲量修正速度后,箱子为何仍陷在地面里?
- 恢复系数为 0
- 发现重叠时位置已经穿入,修正速度不会改变位置
- 重力仍在作用
- 撞到了逆质量为 0 的物体
位置校正为何设置 slop(余量)?
- 浅重叠时节省计算
- 防止物体穿过
- 每步把重叠精确归零会让物体抖动
- 把恢复系数变为 0
位置校正为何不应修改速度?
- 否则校正会变成推力,使堆叠自行弹起
- 速度已由冲量精确计算
- 否则破坏动量守恒
- 同一步改位置和速度会使积分器发散
为何在一步内多次迭代求解堆叠箱子的接触?
- 平均浮点误差
- 接触互相耦合,依次求解时后一个会破坏前一个
- 迭代能提高恢复系数精度
- 每次都需重新检测碰撞
箱堆随时间慢慢变矮,首先应怀疑什么?
- 恢复系数过大
- 重力常数过大
- slop 太小,每步都校正
- 迭代不足,一步结束前底部接触未完全求解
引擎为何让稳定物体进入 sleeping,从计算中移除?
- 速度长期低于阈值时,继续计算几乎不改变结果
- 睡眠物体无需碰撞检测
- 位置校正在睡眠物体上会发散
- 浮点误差随时间增大