假设我扔了一个立方体,它以 45、45、0 旋转(在它的角落)落在地上。现在在一个“完美”的世界里,立方体不会由原子组成,它会是“完美的”,不会有风(或任何较小的空气运动)等等。最后立方体会保持原样角落。但是我们并不是生活在一个如此无聊的“完美”世界中,物理模拟器应该考虑到这一点,它们做得很好。所以立方体落在它的一边。
现在我的问题是,这有多随机?立方体总是落在它的左边吗?或者它可能取决于 Math.random()?或者可能取决于当前时间?或者它可能取决于一些自定义的随机函数,它不需要时间,而是舞台上对象的参数,因为它是种子?
为什么我提出这个问题是,如果随机性不是基于时间的,我可能可以缓存碰撞结果(当对象停止时),以优化我的动画?如果我缓存了整个动画,我不会在意,但如果我只缓存最终结果,我可能会感到惊讶的是,两个完全相同的情况可以评估为不同的结果,然后另一个不适合我的缓存版本。
我可以只检查 Math.random 函数的源代码,但这将是一种肤浅的方法,因为代码肯定已经过优化,并且那里不需要如此复杂的随机化,我个人会使用类似 fallLeft = time % 2 的东西。此外,代码可能会随着时间而改变。
在这里找不到任何关于 AwayPhysics 的信息,所以这可能对每个人来说都是新事物——这就是我添加括号部分的原因;如果我假设一件事,世界就不会爆炸,而在 AwayPhysics 中恰好相反,标准是什么?