Jump to content

Rigid Body Solver: single vs multiple (bullet)


cruiserandmax

Recommended Posts

I noticed when using two RBD Fractured Objects- if I merge them both before feeding them into a Rigid Body Solver I get vastly different results than if I connect each fractured object to it's own Rigid Body Solver and then merge the result of those. This is using bullet. Is this to be expected?

 

In the hip- in the AutoDopNetwork if you switch the right connection into merge1 from SINGLE_SOLVER to MULTI_SOLVERS you can see the difference.

 

What is the resulting difference under the hood (at the bullet level)?

 

h13_bullet_glue_test_multisolvers.hip

Link to comment
Share on other sites

The setup with two solvers is actually very different. When rigidbodysolver1 runs, the only active objects are the fractured pieces. When rigidbodysolver2 runs, the only active object is the ring of boxes - the fractured pieces are treated as an affector (i.e. a static object) since they have already been solved by another solver. This means that when a collision occurs the boxes are pushed away but the fractured pieces do not move. However, the second solver records that this impact occurred, and then a feedback loop begins - rigidbodysolver1 re-simulates its timestep but applies the impacts recorded by rigidbodysolver2, and this repeats until there are no longer any collisions (or the value of the Max Feedback Loops parameter on the DOP network is reached).

 

This is really designed more for mutual interaction between different solvers (e.g. fluids and RBD) - if everything is an RBD object it will be a lot faster to simulate everything with one solver

Link to comment
Share on other sites

That makes perfect sense- thanks for the very clear description.

 

On a follow-up topic- I was trying two solvers because I couldn't get glue constraints working between the fractured pieces when both fractured pieces and the boxes were connected to the same solver. However the glue constraints will work just fine if the boxes rbd object is disconnected from the solver altogether.

 

Here is another simple hip that shows that- any idea what I'm doing wrong that causes the glue constraints to fail when the boxes are added in?

h13_glue_test_selective_objects.hip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...