Stop high velocity RBD Fractured Object

   13663   7   1
User Avatar
Member
18 posts
Joined: April 2012
Offline
Hi,

I am trying to create an effect where an object is moving at high velocity, hits the ground and breaks apart in a controlled manner (only a few pieces come off). So I created my pieces using Voronoi and made it into an RBD Fractured Object, gave it some initial velocity, glued the pieces and it moves the way I want it to. Now, when it hits the ground I want the object to stop completely. So, I set the Bounce to 0, Rotational Stiffness to a high value and Friction to a high value. However, the object just keeps moving. I tried doing the same thing with an object that is not pre-fractured (normal RBD Object) and it works fine.

Any idea how I can make my pre-fractured object stop? Please see attached file.

Thanks.

Attachments:
od_RBD_Fractured.hip (813.1 KB)

User Avatar
Staff
2540 posts
Joined: July 2005
Offline
Substeps at the top DOP network level for fast moving RBD objects is generally the first thing you try. Did you try setting bounce to 0 and friction to very high 10?

You might want to try adding rbd objects around the collision area with very high mass to try stop the fast moving rbd piece. Use spring constraints to knot these temporary RBD objects together to absorb the impact and then delete out of the sim immediately.

Heck you could even put a small FLIP or Fluid container around the collision area with feedback scale set up to interact with the RBD object. Again only add for the brief time the RBD object is slowing down and then remove again.

I guess what you are trying to do is absorb the energy of the fast moving RBD object in a way that is plausible/realistic. That would be the ground. Along that vein, could make your ground a fractured object with a lot of fractures around the impact point and connect with RBD constraint network. You'd get debris chunks off the ground.
There's at least one school like the old school!
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
Here's a feeble attempt at setting up an RBD collider to absorb the collision.

Attachments:
od_rbd_fractured_200_jw.hip (1.2 MB)

There's at least one school like the old school!
User Avatar
Member
18 posts
Joined: April 2012
Offline
Hi Jeff,

Thanks. Some very good ideas there. I have the bounce set to 0 and friction to 10. Right now what I am doing is applying an animated drag force that is activated just when the object is about to hit the ground and then it deactivates in a couple of frames. That is getting me close to what I want.

What I couldn't understand was why I was getting different results with RBD Fractured object and with a regular RBD object even though both had the exact same values and the same object.
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
I guess it has to do with the single RBD object versus multiple RBD objects glued together.

Perhaps the collision representation that bullet creates for the fractured RBD object passed in as a single RBD Object is giving different results? Have a look at the collision geometry for both cases.
There's at least one school like the old school!
User Avatar
Member
18 posts
Joined: April 2012
Offline
Yes, that seems likely. I'll take a look. Thanks again, Jeff.
User Avatar
Member
310 posts
Joined: July 2012
Offline
There are two tips I have for this. First, make sure that the pieces will come to a stop without any extra forces at play. Disable all other forces other than gravity. Do your pieces stop moving? If they do, then you might be adding forces to the sim incorrectly, so they have a perpetual motion you want to eliminate.

Secondly, the Linear and Angular threshold parameters can be increased, to change the velocity at which the shards are considered not-moving. Increasing this value gave me the best result. Hope this helps.
User Avatar
Member
4 posts
Joined: May 2014
Offline
I'm a few years late to this conversation but I'm stuck on a similar issue.

I'm trying to imitate the motion of rocks falling on dirt (a shock absorbing surface). Since the RBD Solver seems to give me more accurate and expected results over the Bullet Solver, I decided to go with that method using the RBD Fractured Object. When I first had my scene setup with Bullet, I was able to use a little VEX in the SOP Solve to artificially reduce velocities as rocks fell below a certain Y value. It seems like that setup isn't compatible with my RBD setup, so I was wondering what would I need to do to get it working? In addition, how can I write an expression that would tell the solver to reduce the velocities of the objects by half and double their weight each time they impact the ground?

Attachments:
RBDTest_001.hiplc (772.1 KB)
Capture3.JPG (43.7 KB)
Capture4.JPG (31.9 KB)

  • Quick Links