Jump to content

RBD Fracture Control (example file)


whodini

Recommended Posts

Hey guys, I'm sharing a file for those interested in doing art directed fractures. It's definitely not the only way to do this, but I thought it would be  nice to give something back to odforce.

 

The hip file is a sim of a platform that is collapsing over time from one end to the other. I've left a ton of notes inside, so check it out! improve it! use it for whatever you want. 

 

UPDATE: 

I've also added the H13 version using packed primitives to achieve the same result.

houdini_fracture_glue_bullet.hip

rbd_packed_controlled_fracture.hip

Edited by rhussain
  • Like 6
Link to comment
Share on other sites

Nicely done example, Ryan! But as for me, for now this method is slightly outdated because in H13 rbd packed objects provide a possibility to inherit and modify point attributes just for free without any tricks. Using point() function might by very confusing because in complicated setups $OBJ might not be equal to point number, representing the object.

Link to comment
Share on other sites

  • 1 month later...

I've added a version using packed primitives! have fun.

Hi, Rhussain.

The active process get some problem when active a big object (such as 10*0.1*10),and i need decrease the search radius ,because i just want active the objects in box.

When the active attribute was set to 1, after a while when the object out of box, active will turn to 0, so it will just stop .

So i just modify to add a solver sop.

When it be actived, it will keep moving always.

Cheers.

rbd_packed_controlled_fracture_SOlver.hip

Edited by wateryfield
Link to comment
Share on other sites

Nice!

I didn`t have the time to check your files but It sounds like something I would love to see.

I started to play with similar thing more than a year ago, but never had the time finished it. First on 12.5 with python, then on 13 with pakced prims and wrangles.

 

My idea is to use 2 meshes to control the simulation:

1) low res simulated pieces - fast and easy to control. You can also mix them with manual animation, or use only animated pieces

2) hi res static mesh- this one will inherit motion from animated geo

 

The results were not bad. There is some jitter sometimes, but I also didn`t spent time to adjust  the settings.

 

Some of the results:

lN807Ff.jpg

DCgu5rH.jpg

 

PIx3ZoP.jpg

AeCHWcE.jpg

 

 

There is a ramp controls for velocities, collisons and glue constraints based on pieces centers. Pieces can be broken and they will automaticly decide if they will inherit original motion.

Old python version has nice feature to control hires gluenets based on lowres ones, so when lowres contraint is broken all hires constraints are destroyed also...

I still don`t want to upload hip files - they are too messy (well..also don`t have acces to them right now), but if someone is interestd in this tehnique and have the time to continue to work on it, I can provide some files and explainations (:

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

I just uploaded video from the same example:

https://vimeo.com/95223325

 

cheers

 

Pretty interesting! By any chance have you looked at any of the new Primitive vex expressions with an AttribWrangle to retransform your higher rez pieces ?

 

You can use primintrinsic() to grab the transform off the big peices and use that to re-transform the same piece but refractured.

Link to comment
Share on other sites

To generate veolcities, first I have this huge pre-simulation step, that computes desired transforms for each new piece.

There are several steps :

-Generate point for each new piece and store its name

-Recompute point position to match center of mass

-Generate matrices for animated low res pieces(almost the same setup as edge displacement matrices, no intrinsics)

-Transfer matrices to points inside each piece. If new pieces are not inside old ones-they are simply deleted

-Animated pieces centers and raduis are computed, and transfered to points to create some weight controls.

-Glue netowrk is generated and bonds between old pieces are deleted. Point weights are transferred to gluenet. This way constraints along edges are weaker than the others.

 

Inside dops, ponts are imported and wrangle node inside sop solver controls the whole simulation. Velocity and angular velocity are computed and multiplied by weight attribute.

 

Basicly, thats it (:

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

  • 4 months later...

Hm I still had this stopping problem with packed primitives even when trying out the sop solver here. 

But what seemed to fix this issue is tweaking the bullet_linear_sleep_threshold on the RBD Packed Object, yay

 

 

Hi, Rhussain.

The active process get some problem when active a big object (such as 10*0.1*10),and i need decrease the search radius ,because i just want active the objects in box.

When the active attribute was set to 1, after a while when the object out of box, active will turn to 0, so it will just stop .

So i just modify to add a solver sop.

When it be actived, it will keep moving always.

Cheers.

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