(16-09-2017, 07:40 PM)josemendez Wrote: Possible solutions:
1.- Increase the amount of distance constraint iterations. These are what keep the rope from stretching under high loads.
2.- Create a rope with higher resolution. This reduces the gaps between particles.
3.- Increase the mass of the rope particles accordingly . This is useful if the mass ratio you're interested in maintaining is "load -vs- some other scene object", instead of "load -vs- rope".
Note that under high enough mass ratios the simulation won't be able to keep up no matter what you do. It will not explode (as Unity's PhysX does), instead will handle the situation as gracefully as possible.
No realtime general physics engine is capable of dealing with arbitrarily high mass ratios. There are particular algorithms that do (such as Featherstone), but they are limited to specific scenarios and have high performance requirements even in simple cases. This problem is usually circumvented in commercial games by establishing a maximum mass ratio between any two objects in the game, and sticking to it.
In engineering environments where you can't fake or cap mass ratios, this issue is dealt with by either increasing the amount of constraint iterations to a point where the simulation is no longer realtime, or a completely different approach is used (such as eulerian discretization instead of lagrangian, and direct solvers instead of iterative ones).
I again started with default Crane scene, and increased Load RigidBody Mass from 1 to 10.
Solution 1
Increasingly adjusted ObiSolver distance constraint iterations up to 200. Did not resolve the issue.
Next I generated tethers. Set distance constraint iterations = 50, tether constraint iterations = 50. Did not resolve the issue.
Solution 2
Increase Rope Resolution from .2 to .4
Recreated Fixed and Pinned points
Next generated tethers. tether constraint iterations = 50. Did not resolve the issue.
Next increased distance constraint iterations = 100. Solved the issue. Lower values would eventually fall through pulley.
Removed tethers, issue was still resolved.
Solution 3
Increase Particle Mass from .1 to .3.
- Select Fixed
- Invert Selection
- Increase Mass from .1 to .3.
Solved the issue, as long as Pulley does not spin
Next increased collision constraint iterations from 10 to 60. Solved the issue.
Solution 2 & 3
Increase Rope Resolution from .2 to .4
Recreated Fixed and Pinned points
Increase Particle Mass from .1 to .3.
Increase collision constraint iterations from 10 to 30.
Increase distance constraint iterations from 20 to 30.
Solved the issue.
Is there a better solution?
I understand the concept that high mass ratios are a 'bad' thing. I would not think 10 kg is that absurd.
By default the rope weighs 5kg.