【问题标题】:Why should the mass of one object never be 100 times more than another?为什么一个物体的质量永远不会是另一个物体的 100 倍?
【发布时间】:2015-02-08 13:27:12
【问题描述】:

我在很多地方读到过,两个物体相互碰撞,其中一个物体的质量比另一个物体的质量大 100 倍以上,会导致碰撞的物理问题。然而,当我自己测试它时,我发现我正在尝试做的事情并没有真正的问题。

基本上,我希望有人能详细说明为什么两个碰撞物体之间的质量差异如此之大是一件坏事,因为目前我还没有看到为什么不这样做的任何理由,只是很多高层人士说不要这样做。

【问题讨论】:

  • 如果物理引擎决定通过移动对象直到它们不再相交来解决问题(虫子对象与汽车对象重叠),那么一辆快速移动的汽车撞到一个小而静止的虫子可能会受到很大的冲击.如果数字变得极端(10,000* 而不是 100*),那么浮点舍入误差可能会变得非常大,因为 ((bug mass + car mass) - car mass) 将不等于 bug mass。
  • 啊,这更符合我的预期。如果必须发生质量差异如此大的碰撞,您对我应该怎么做有什么建议吗?
  • 试试你现在拥有的系统并积极地测试它。如果看起来没问题,请运行它。如果不是因为您遇到了这些问题,那么您将进入“特殊情况”领域,这在很大程度上取决于您的最终目标是什么。可能没有灵丹妙药。编辑:不要只是不这样做 - 如果它想要你想要解决它!否则不会有新的事情发生!
  • 很公平,谢谢您的建议。

标签: unity3d game-physics physx


【解决方案1】:

如果有人还在阅读这个老问题,有两个要点

1) 最简单、真实的解释方式是,PhysX 很难处理这个问题。这是一个运行速度惊人的游戏物理系统,因此它依赖于某些合理的领域。

{所以,请注意 - 很简单 - 你可以制作类似的 cmets,例如 “不要尝试让 500 多个对象同时碰撞”“不要尝试让事情变得非常缓慢”。它是“唯一的人类”,PhysX 令人难以置信,但对于数学和求解器来说,可能只有这么多。}

2) 重要的是,这是一个老妇人的故事 .... 2018 年,它基本上不再是真的了。

这不再简单了:

有趣的是,这是一个出色的答案,表明它在复杂的情况下完美地工作!

https://stackoverflow.com/a/51961508/294884

点击观看动画..

如今(2018 年以上)“100 倍”差异确实没有问题。您可能会说“1000x”开始变得有点不稳定。而“10,000x”可能会带来麻烦。

【讨论】:

    【解决方案2】:

    你提供的信息没有一个。

    你有没有在开车时撞到虫子?是不是发生了什么灾难,什么时候发生的?

    如果我们对物理现象进行价值判断,那么从错误的角度来看,它可能是“坏的”。

    【讨论】:

    • 所以你的意思是不准确的碰撞没有问题,只是不值得让物体在你的场景中漂浮,因为虫子的碰撞影响?
    • 从经典的角度来看,碰撞似乎对较大的物体的影响可以忽略不计。更大的物体将获胜,大时代。我无法谈论量子水平,因为我对它只有粗略的了解。如果您创建的游戏是用车辆撞到小虫子,那么从车辆的角度来看,实际的碰撞将是您所关心的。除非虫子粘在车辆上的累积质量影响车辆,否则车辆不会受到影响,这可能需要很多虫子。
    • (这与任何东西都没有任何关系 - 问题在于 PhysX 的工作原理。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多