Jump to content

Realistic Dynamic Fracturing with Bullet


vi_rus

Recommended Posts

Sergei I have one question for your setup. I can see from the first example already that the fracturing does not happens where the impact is, why is that and how?

 

Are you using the broken constrains to decide if a piece will fractured or not?

Edited by cparliaros
Link to comment
Share on other sites

Thanks for clarifying. Thanks man. It's the same technique I used in Thinking Particles, I haven't tried it in Houdini yet. 

 

You're welcome!

Actually, I was inspired by this video 

but hadn't an idea how to make it for a long time...

 

Sergei I have one question for your setup. I can see from the first example already that the fracturing does not happens where the impact is, why is that and how?

 

Are you using the broken constrains to decide if a piece will fractured or not?

 

That's why I called this video "realistic" :) in real life is not necessary that the destruction taking place in impact places. It is defined by stress level of the system. I used pin constraints to compute it.

 

http://www.youtube.com/watch?v=RtZ3-zTk4jU#t=52

 

Yeah, broken constraint is one of the factors to break a piece.

  • Like 1
Link to comment
Share on other sites

Hi Again, I am back with more questions. Why do you start with Pin constrains and you don't stay with Glue? Where do you use Pin and Glue?

Do you start with Pin which gives some elasticity on the object without breaking and somehow you use the force attribute to decide which pieces to sub-fracture and then the new pieces create new Glue constrains?

Also, can you talk little about relationship of actual pieces of the column/wall and their metal skeleton. Are there collisions between them, because I can see intersection. But at the same time I can see that one effects the other.

The skeleton will bend based on how many pieces has on it and where.

I am trying to understand how works....

Link to comment
Share on other sites

Hi Again, I am back with more questions. Why do you start with Pin constrains and you don't stay with Glue? Where do you use Pin and Glue?

Do you start with Pin which gives some elasticity on the object without breaking and somehow you use the force attribute to decide which pieces to sub-fracture and then the new pieces create new Glue constrains?

Also, can you talk little about relationship of actual pieces of the column/wall and their metal skeleton. Are there collisions between them, because I can see intersection. But at the same time I can see that one effects the other.

The skeleton will bend based on how many pieces has on it and where.

I am trying to understand how works....

 

I used Pin constraint because it gives me possibility to use stress level. Glue constraints are much simpler, I guess it combines all linked objects into one "cluster", so in this way it much easier to solve for Bullet. That's why glue is so fast. But with glue constraints, I can operate only with impact points. But that doesn't work for real life fracturing.

 

I have 2 constraints systems. One of them combines all objects(including rebar), another one includes only rebar. That allows me to make skeleton unbreakable.

Yes, skeleton depends on the count of pieces inside it. Increasing of segments will give more smooth bending.

  • Like 2
Link to comment
Share on other sites

I used Pin constraint because it gives me possibility to use stress level. Glue constraints are much simpler, I guess it combines all linked objects into one "cluster", so in this way it much easier to solve for Bullet. That's why glue is so fast. But with glue constraints, I can operate only with impact points. But that doesn't work for real life fracturing.

 

How you get stress level? The only attributes I get from Pin Constrain is force, restlength, distance and angle? Is the (distance - restlength)? Also, those attributes are attached to constrain geometry how do you transfer them to packed prims?

 

I have attached an example with my setup

dynamicFracture_v04.hip

Edited by cparliaros
Link to comment
Share on other sites

How you get stress level? The only attributes I get from Pin Constrain is force, restlength, distance and angle? Is the (distance - restlength)? Also, those attributes are attached to constrain geometry how do you transfer them to packed prims?

 

I have attached an example with my setup

 

Your setup is fine, you just need to break constraints by some conditions. As Saber said, you can use any of these attributes. When I say "stress level" I don't mean some specific attribute, that's more like general concept.

 

If you need to find objects which attached to some constraint you can use findattribval() function in vex. Each constraint has a name attribute(on points) for both objects with corresponding value.

Link to comment
Share on other sites

hey man, I just want to know if the setup scales well. what if its a building?, or better yet do it use fracture limit..another concern is the textures.

how was it compared to the a prefractured workflow.

 

thanks in advance i love the examples

Thanks man. Actually, I didn't test it with another scale. I'm trying to change this setup for Milan Suk's version of Bullet now.. It works with one fracture level, I guess that's enough for main sim. There shouldn't be any problems with textures. This setup is already prefractured, the main difference that if you need more details you don't need to prefracture everything more, but just change simulation fracturing parameters...

Edited by vi_rus
Link to comment
Share on other sites

    Exellent job so far. I still can't figure out some stuff. The idea with pin constraint, checking it with some criteria and determine stress area, is just awesome. But pin constraint wihout glue (as in your video) causes some instability to the pieces and pieces kind of dance, even when they don't collide. And for what you create glue constraints dynamically?

    Thnx in advance for reply. :)

Link to comment
Share on other sites

  • 2 weeks later...

I am rebuilding the rebar bending behavior and managed to come up with something working.

the only problem I have is that the reloading happens on the whole constraint network, because I am checking for a detail 'switch' attribute (yeah pretty dump ;p). I would like to reload only the primitive\ point pair which is exceeding a certain force value.

 

any suggestions?

 

thanks

sebastian

 

 

 

live_constraints05.hip

Link to comment
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.

h13_const_breakbytorque.hip

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Update!

Bendable constrains included. Simple ones, no separated intetnal structure. There are per bond parametets that controls where the bending will occur, how much force is applied and setting that allow each bond to restore its initial position over time.

Stress level is now accumulated and stored, it can also dissipate over time so constrains now gets weaker when enough force or bend is applied.

Next thing I want to add is to share some attributes, so edge displacement could be used.

Edited by rayman
  • Like 9
Link to comment
Share on other sites

Update!

Bendable constrains included. Simple ones, no separated intetnal structure. There are per bond parametets that controls where the bending will occur, how much force is applied and setting that allow each bond to restore its initial position over time.

Stress level is now accumulated and stored, it can also dissipate over time so constrains now gets weaker when enough force or bend is applied.

Next thing I want to add is to share some attributes, so edge displacement could be used.

It looks great.

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