我正在开发Scenekit中的迷你高尔夫游戏。我已将动态物理体应用于球和静态物理体到草地表面,砖墙显示在image中。
问题:
当我将力施加到球上时,球的线性和角速度会发生变化,如图所示。球的速度不会降低到零(这样球可以停止)但在一定值后保持不变。
Ball linear speed graph
Ball angular speed graph
分析测试:
- 当我将值增加到rolling friction和friction时,球速会迅速降低,但在某个值后保持不变(类似于上图)。
- 当我增加linear damping和angular damping的值时,球速行为与点#1相同。
- 当我将重力值设置为-9.8 m / s2时,球的线速度在0.1 m / s后保持不变。如果我将重力值减小到-5 m / s2,球的线性速度在0.05 m / s后保持不变。
- 在整个球的运动过程中,摩擦力,线性摩擦力,线性阻尼和角度阻尼是相同的。
- 球与高尔夫球场表面之间有1毫米的重叠。
醇>
问题:
- 从分析测试#3 ,我认为引力导致恒定的球速问题。我的假设是否正确?如果是,我该如何解决问题?我无法移除重力场,因为没有重力场,球不会沿着草地滚动而且会滑动。
- 为什么摩擦力和阻尼特性在一定值后不影响球速?
- 是否还有其他物理属性会导致此类问题?
- 从分析测试#5开始,球是否有可能向上推动以纠正球的位置?
醇>
解决方案:
- 将重力值降低到-1 m / s2并将physics simulation速度降低到4(快速物理模拟的4倍)后,问题就解决了。但是,我担心这些设置会引发游戏进一步发展的问题。
- 如果我将物理时间步长从 60 FPS增加到200 FPS ,问题就解决了。解决方案2如何解决此问题?
醇>
我很感激有关此主题的任何建议和想法。谢谢。