Jump to content

Joints "stretched"


Recommended Posts

Hello,

First you need to correct the position of the joint anchors. To do this, you can use the buttons Fix 0, Fix 1 and Fix 01. Then increase the number of iterations, for example, by 8. Finally, remove the immovable flag from the rigid body, or use body dummy instead. The attachment contains an example of a configured joint.

data.zip

Link to comment

With 2.14 this scene work as is now.

But as soon as you start moving red cube, blue starts rotating around it freely, while keeping distance. If set mass to red cube 0 instead of checking "immovable" - it work as expected.

Just letting you know.

Link to comment
  • 8 months later...

I'm pretty sure this is a side effect of Unigine using PGS instead of the more accurate reduced-coordinate system. The only physics engine I know of supporting reduced-coordinate multibodies is nphysics but its development was stopped in favor of a new engine that uses PGS instead and does not support multibodies.

Reduced-coordinate multibodies represent equality constraints (hinge, prismatic, cylindrical, screw, etc. but not spring, rope, etc) by actually storing less coordinates for the attached body, making it impossible to ever stretch or misalign the constraint.

However, it can only be used to remove entire degrees of freedom. Limiting the angle or length of a constraint, creating motors or servos, or generally applying forces to an object can only be done with PGS. I believe certain platforms like Roblox use LDL to mimic these equality constraints more accurately without going all the way to reduced-coordinate multibodies, but that is also not perfect.

PGS just represents every joint with what amounts to a strongish spring, and keeps all the coordinates, which means joints can become stretched or misaligned.

More complete physics engines will support both, as not all kinds of constraints can be represented solely using equality (or reduction in the degrees of freedom). Unigine does not seem to support multibodies, only PGS constraints, which could be the reason for the stretching behavior you observed.

PGS joints will always be stretchy, floppy and generally inaccurate. There's not really anything that can be done about it except raising the iterations as noted above.

Edited by LoganDark
  • Like 1
  • Thanks 2
Link to comment
×
×
  • Create New...