我想对重叠排斥球进行非实时模拟,最初是2D,后来是3D。
首先,为简单起见,请考虑一个简单的封闭域。在实践中,域名将是复杂和不规则的,但总是关闭。
边界上的球是固定的,可能是重叠的。固定的球自身复制,以便在没有其他球重叠时产生相同尺寸的自由球。固定球和自由球相互排斥,但固定球不能移动。请注意,重复球应该充分倾斜以开始排斥。在弹性碰撞球的情况下,在两个球碰撞后,它们以一定的速度改变方向,但是在这种情况下,球一旦停止重叠就可以快速停止。自由球移动直到没有运动或让我们说解决运动问题直到收敛。然后每个固定球再次产生一个自由球,这个过程一直持续到没有固定球可以复制,因为任何其他球重叠。
我认为GPU(CUDA)可以更快地解决这个问题,但最初我想在CPU上编写。但是,在进行编码之前,我想知道这项工作的“可行性”。也就是说,考虑到一百万个球,大约需要多长时间来非实时地模拟这种或类似的问题。对于一百万个球,如果解决时间是几分钟,我将深入研究这个问题。
答案 0 :(得分:1)
您可能会考虑使用Box2D作为原型。将碰撞约束设置为“软”将为您提供您在图表中显示的行为类型。
至于实时模拟一百万个物体,你将会在GPU上工作。