Jump to content

Bullet and Voronoi Fracturing


Stjohn

Recommended Posts

Hi,

This is a quick mashup of Houdini 11's dynamic fracturing and the Bullet RBD solver.

Basically, the Houdini RBD solver handles the first hit and the fracturing, the chunks get handed off to the Bullet Solver. So here's the question: How do I damp out the bouncing of the chunks? Am I (or the voronoi fracture setup) doing something wrong in the creation of the chunks, causing instability?

Sorry, this is kind of off the wall, using a Beta release and an unsupported solver, but offloading the RBD of many chunks to a much faster solver seems like a worthwhile effort.

Cheers,

-John

PS, this file only works if you have Bullet working, described here:

BulletFracture.hip

Link to comment
Share on other sites

Hi John,

I'm afraid I don't have the Bullet solver setup on my laptop, so I can only offer a few guesses. The dynamic fracturing solver uses point velocities to control the initial velocities of newly created pieces, so it's possible that the Bullet solver is not handling them properly somehow. Also, the pieces are created with no initial separation between them, i.e. they start off directly in contact. The RBD Solver is very tolerant of this; maybe Bullet is less so. Does it work if you pre-fracture the object and just use the Bullet solver only?

If I may briefly defend the RBD Solver, its defaults are set up to handle things like stacking and piles of objects, which you may not need in a fracturing type sim. It may not be as fast as Bullet, but I've had good results from some types of sims using a lot of 2's. So, a value of 2 for the DOPNet substeps (improves the transition from intact to fractured objects), and for Collision Passes, Contact Passes, Subcontact Passes, and Shock Propagation on the RBD Solver. Also, you'll almost always want an RBD Auto Freeze with as high a "Freeze Threshold" as you can get away with.

Your file also had "Use Deforming Geometry" on for the main box object, which meant the collision SDF was being re-calculated each time making things pretty slow. I'd turn that off, and try your sim with the settings above and an RBD AutoFreeze and it's actually pretty quick and stable with the RBD Solver, even as you increase the number of pieces.

(I could offer more specific dynamic fracturing help, but I think that would still need to be limited to the SESI Beta forum for the moment.)

Edited by johner
Link to comment
Share on other sites

I should turn off "Use Deforming Geometry" certainly. But I didn't think of testing it with a pre-fractured object. I'll give this a try, as well as adjusting settings in the RBD solver. But my main goal of this experiment was to test a solver handoff situation. In this little example, it would make plenty of sense to do it all with the RBD solver, but I'd imagine the handoff to Bullet scenario useful in a situation involving the dynamic fracturing of something huge and decently far away, like a building.

After thinking about it, it may also be that Bullet doesn't know what to do with the fracture point geo in the new pieces. As far as I know, it bases its collisions on the tri-surface of the object. This is why I opened up the fractureparms DOP and threw that divide SOP in there, but maybe I need to delete the impact points from the new pieces as well.

Thanks for your help

-John

Hi John,

I'm afraid I don't have the Bullet solver setup on my laptop, so I can only offer a few guesses. The dynamic fracturing solver uses point velocities to control the initial velocities of newly created pieces, so it's possible that the Bullet solver is not handling them properly somehow. Also, the pieces are created with no initial separation between them, i.e. they start off directly in contact. The RBD Solver is very tolerant of this; maybe Bullet is less so. Does it work if you pre-fracture the object and just use the Bullet solver only?

If I may briefly defend the RBD Solver, its defaults are set up to handle things like stacking and piles of objects, which you may not need in a fracturing type sim. It may not be as fast as Bullet, but I've had good results from some types of sims using a lot of 2's. So, a value of 2 for the DOPNet substeps (improves the transition from intact to fractured objects), and for Collision Passes, Contact Passes, Subcontact Passes, and Shock Propagation on the RBD Solver. Also, you'll almost always want an RBD Auto Freeze with as high a "Freeze Threshold" as you can get away with.

Your file also had "Use Deforming Geometry" on for the main box object, which meant the collision SDF was being re-calculated each time making things pretty slow. I'd turn that off, and try your sim with the settings above and an RBD AutoFreeze and it's actually pretty quick and stable with the RBD Solver, even as you increase the number of pieces.

(I could offer more specific dynamic fracturing help, but I think that would still need to be limited to the SESI Beta forum for the moment.)

Link to comment
Share on other sites

In this little example, it would make plenty of sense to do it all with the RBD solver, but I'd imagine the handoff to Bullet scenario useful in a situation involving the dynamic fracturing of something huge and decently far away, like a building.

You're right, the idea of Bullet with dynamic fracturing is certainly interesting. I guess I was just pointing out the RBD Solver can achieve very useful speeds, maybe especially in far-away situations where you can turn down the collision accuracy.

Again without going into too much detail yet, another interesting way to work with dynamic fracturing is to set up the initial sim conditions and wedge the random parameters that control the fracture patterns, which can yield very different behavior / looks, depending on the type of sim. As an example, I wedged 20 of these building sims simultaneously on my local machine, generating 4000 frames of destruction in about 1.5 hours, all from identical initial conditions, with lowered collision settings like I describe above. (These are flipbooks, so there's some shadow artifacts and flickering.) If I remember correctly, some of these ended up with 3-4K objects.

I'll provide .hip files and such when the beta is over, but it's a pretty straightforward setup.

http://s3.amazonaws.com/vfx/two_building_collapse_wedge_seed.mp4

http://s3.amazonaws.com/vfx/two_building_single_explosion_seed.mp4

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...