Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ObiRope 3.2 Crane - Prevent Rope from passing through spool
#4
(21-09-2017, 06:29 AM)tbookout Wrote: 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.

Nope, there's no general, better solution for this (not just in Obi, but in the whole realm of iterative solvers, which pretty much encompasses all realtime physics solvers). You have to either increase the amount of solver iterations or cap the mass ratios.

Try an experiment: take two cubes in unity (w/ rigidbody components) and put one on top of the other. The bottom one should weight 1 kg, the top one 100 kg. This is equivalent to having ten 10kg cubes on top of the 1kg one, as 10x10 = 100. This setup will cause both cubes to immediately start jittering and go trough each other, or cause the top cube to jump off the bottom one. The highest ratio that ensures no artifacts and little/no penetration between the cubes 1/10 (a 10kg cube on top of a 1kg cube), using the default amount of iterations used by Unity (which is 6).

The above cube-based setup is also numerically equivalent to having a 10 kg load hanging from a rope made out of ten 0.1kg particles each. You could see the behaviour is roughly the same for both systems, because both PhysX and Obi have iterative solvers at their core. They both behave in similar ways, except for the jittering behavior, to which Obi is virtually immune.
Reply


Messages In This Thread
RE: ObiRope 3.2 Crane - Prevent Rope from passing through spool - by josemendez - 21-09-2017, 12:27 PM