Jump to content
vi_rus

Realistic Dynamic Fracturing with Bullet

Recommended Posts

Seems like your link doesn't work for me.. If we talk about name attribute, here is just one requirement: it should be different for all objects. That's pretty easy to do.

 

 

I'm breaking, recreating (for rebar) and create new constraints (for fractured pieces).

question for the rebar part, are you selectively recreating according to some conditions or recreating all of them. if doing selectively, how do you pick the right pair of pieces?

Share this post


Link to post
Share on other sites

question for the rebar part, are you selectively recreating according to some conditions or recreating all of them. if doing selectively, how do you pick the right pair of pieces?

 

I tried to recreate partly at first, but it didn't work for me. So I switched to recreating for all rebar constraints.

 

 

Nice work, guys! That's really cool to see such tests :)

Share this post


Link to post
Share on other sites

I tried to recreate partly at first, but it didn't work for me. So I switched to recreating for all rebar constraints.

 

 

Nice work, guys! That's really cool to see such tests :)

I kind of made it work, however,i have to set both bullet substeps and constraint iterations up to 40 to get proper bending result. 

 

is it true for your setup?

Edited by zysnow

Share this post


Link to post
Share on other sites

Here's a quick setup. Very simple and clean falling plank. You can switch between cone twist and the hard constraint. Hard constraint stiffens up with more subsamples.  It also doesn't maintain deformation, it's just slighting bendy. I'm breaking based on the torque attribute, as it seems the most consistent and useful of the available attributes.

 

Awesome Dude! Very clean and easy to understand, thanks for sharing man!

Edited by Mzigaib

Share this post


Link to post
Share on other sites

Well, I wasn`t able to prepare a proper scene, so I`m just giving you the messy one!

Keep in mind that I simulated it on older H release, so results may not be the same, as there are many changes in bullet solver by now.

 

 

 

Hey Pavel, this looks great. Any chance you could do a quick walkthrough of your setup? I'm going through your scene now and doing my best to follow it! Particularly the sopnet inside your dopnetwork. Great work though

 

Cheers,

Mike

Share this post


Link to post
Share on other sites

Hey guys.

I am also trying  to recreate your setup with the bendable fracture stuff but I cant get it to work properly.

I must be missing something but here is what I am doing at the moment.

 

I set the Pin network and its working fine.

I then break it base on torque.

 

if(f@torque>value)

setprimgroup(0,"broken",@primnum,1);

 

Now I bring the network with a sop solver connected aside the bulletsolver and I isolate the broken group.

 

Then with an attribwrangle the geo and the broken group connected  and by using the  findattribvalcount() function I find the objects I need to fracture more. All good.

I then switch to the newly fractured geometry .For that I use a switch node with the haspoint expression on it. Basically whenever the broken group from the constraint has points that means we should fracture. So thats when the switch is happening.

In order to prevent from fracturing until the end of days I do a check with another switch that looks for  the total area of each piece that goes for fracture.

So I got that part working.

 

Now I have to recreate the new glue network and pin as well right? cause the pin constraints name no longer match the new geometry right? So here is the part I think I mess up.

With a new sop solver this time attached in the constraint network I bring the newly created geometry and trying to create the new network based on that. I am also trying to switch to this new network with a switch as before.

So this doesnt work.  I feel that the order of operations messes stuff. I mean if we use the network's properties (torque) to shutter the geometry then if on the same timestep we try to update it then who is feeding who? arghhhh....

 

I tried to dive to Pavel's file and thanks for sharing I got to learn some stuff but his epic extensive use of attribwrangles messed my head after a point :)

 

Any help and any simple file showing  the base logic and how to update constraints  is much appreciated

Share this post


Link to post
Share on other sites

Great topic and results!

What kind of attributes do You use to calculate the stress level. I guess You update (rebar) constraints with high stress levels more than, constraints that have low ones

 

thanks

Martin

Edited by sanostol

Share this post


Link to post
Share on other sites

What a great topic!

Update!

Bendable constrains included.

Hi Pavel, this looks amazing! Do you mind sharing an example file with bendable constraints?

Share this post


Link to post
Share on other sites

Sure - I'll prepare some examples.

Basically it is Importing Constraints->Transform them using Pieces Positions->Compare Offsets/Forces->Bend(Update)->Transform back to rest space

Share this post


Link to post
Share on other sites

HIP

Hi man! i can't understand the “primintrinsic(1,"packedfulltransform",parIx);”,what is the intrinsic? and what is “packedfulltransform”?

Share this post


Link to post
Share on other sites

This is matrix prim attribute, that stores the transformation matrix of each piece.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×