16-11-2018, 01:51 PM
(16-11-2018, 12:18 PM)josemendez Wrote: In this case you're out of luck. Iterative solvers (PhysX, Havok, ODE, Obi..pretty much all realtime solvers) are absolutely incapable of achieving this. There's two big no-nos when it comes to them:
- Large mass ratios: in your case 1/60000 (0.1kg per particle, vs 6000kg load), which is way larger than the maximum recommended by Unity: 1/10).
- Long chains of constraints: the longer the rope, the slower the convergence.
The only options left are using a direct solver (AgX Dynamics comes to mind) which are usually much more expensive (both in terms of price and performance), or use articulated bodies (which are also costlier in terms of performance, and unfortunately haven't been integrated in Unity yet).
----
By the way, the algorithm you described is called FTL (follow the leader) and unfortunately it does not produce accurate physics, just a very rough approximation. The problem with it is that by only adjusting B (the second particle in each pair), you're implicitly assigning the above chain infinite mass. This has the effect of curling the rope on itself in a very visually unpleasant way. But, by adding a largish damping factor, it can be tolerated. This is generally used for hair simulation (Nvidia Hairworks) since you cannot tell the difference with 10.000 individual hairs. However it does not work for rope (I tried).
The rope itself is a steel rope that's in real-life about 3kg per 1 meter, so with 12 particles on about 2.2meters each will be 0.55kg.
To make them 600 kg per particle will mean that 2.2 meter rope will be 7200 kg, more then the thing on the bottom.
That will cause the rope itself to behave even worse then before: