重叠排斥球的非实时仿真

时间:2016-03-24 15:44:38

标签: c++ collision-detection simulation

我想对重叠排斥球进行非实时模拟,最初是2D,后来是3D。

首先,为简单起见,请考虑一个简单的封闭域。在实践中,域名将是复杂和不规则的,但总是关闭。

边界上的球是固定的,可能是重叠的。固定的球自身复制,以便在没有其他球重叠时产生相同尺寸的自由球。固定球和自由球相互排斥,但固定球不能移动。请注意,重复球应该充分倾斜以开始排斥。在弹性碰撞球的情况下,在两个球碰撞后,它们以一定的速度改变方向,但是在这种情况下,球一旦停止重叠就可以快速停止。自由球移动直到没有运动或让我们说解决运动问题直到收敛。然后每个固定球再次产生一个自由球,这个过程一直持续到没有固定球可以复制,因为任何其他球重叠。

我认为GPU(CUDA)可以更快地解决这个问题,但最初我想在CPU上编写。但是,在进行编码之前,我想知道这项工作的“可行性”。也就是说,考虑到一百万个球,大约需要多长时间来非实时地模拟这种或类似的问题。对于一百万个球,如果解决时间是几分钟,我将深入研究这个问题。

Fig. 1 Fig. 2 Fig. 3 Fig. 4 Fig. 5 Fig. 6 Fig. 7 Fig. 8 Fig. 9

enter image description here

1 个答案:

答案 0 :(得分:1)

您可能会考虑使用Box2D作为原型。将碰撞约束设置为“软”将为您提供您在图表中显示的行为类型。

至于实时模拟一百万个物体,你将会在GPU上工作。