Jump to content

Voronoi - dynamic - location based fracture (WIP)


johner

Recommended Posts

So, I got tired of wrestling with the Shatter tool and watched a few Rayfire videos and decided it was time to have a go at a Voronoi-based fracture tool and some procedural fracturing for debris and whatnot. I'm just about done with the first pass, so I plan on releasing it here in a few days for testing, and eventually on the Exchange. My favorite feature: no Cookie SOP! (or volumes for that matter) It doesn't work for all types of geometry (damn torii), but it's reasonably robust at this point.

Anyway, since it's based on a decomposition of the space around user-supplied points, it's (relatively) straightforward to do dynamic, location-based fracturing. I finally wrestled DOPs into submission enough to post a few test playblasts:

First up, eight or so identical column/barbell looking things smashing together. All dynamic, location-based fracturing, fragments re-fracture again, etc:

here

Static object hitting falling box, brittle material:

here

Same scene, but the fragments inherit more velocity from the initial collision, looks like harder material:

here

Earlier test, this one pre-fractured, RBD Glue Object of Stanford armadillo, 459 pieces:

here

Same scene, but 200 iterations of "reattach" applied, which iteratively fuses random adjacent pieces back together again to try to avoid some of the "overwhelming convexity" that you get from a Voronoi space decomposition (this technique is very much a WIP):

here

Big, concave object as plain old RBD Fractured Object with about 1000 pieces:

here

Hopefully I'll have everything packaged up with examples within a week or so.

Edited by johner
  • Like 3
Link to comment
Share on other sites

Thanks for the encouragement guys. Made some good progress on asset-ifying the DOPs stuff today. This playblast is kind of fun, visualizing the user-customizable impact radius with a red-white spectrum:

here

Very interesting, what renders this thing unable of fracturing torus ?

The workhorse of this fracture tool is the Clip SOP followed by a custom Python SOP that caps any holes created by the clip operation. It handles most concave objects, multiple holes, etc. But it can't handle geometry like a torus, because capping the holes is not actually what you want to do in a lot of cases; you need to do a true Boolean operation to figure out inside / outside. The name of those types of meshes is escaping me at the moment, but it's a specific term from computational geometry. I may make using the Cookie SOP an option for the cutting, since it does handle that kind of geo properly, although it tends to gag in other cases, which is why I've avoided it so far. The nice thing about doing clip / cap operation is that with convex input it's pretty much foolproof, and most other types it handles quite well. I'll include more description with the release.

By the way, thanks for the big concave object, kumpa. I took that straight from your fracture file; it highlighted a few nasty problems.

Link to comment
Share on other sites

By the way, thanks for the big concave object, kumpa. I took that straight from your fracture file; it highlighted a few nasty problems.

Hehe, i am happy it helped you. It took me ages to model :)

Link to comment
Share on other sites

Hehe, i am happy it helped you. It took me ages to model :)

Ha! Actually its simplicity is what made it useful. Most of the concave objects I'd tested had a fair number of polys. That one was very concave, very few polys. Highlighted a couple of bugs in my capping SOP.

Link to comment
Share on other sites

This is looking pretty good actually, I'd be interested to see how it turns out.

Thanks, me too :) . Quick screenshot attached. And resulting playblast:

here

You can see there's a "Fracture Solver" which is an encapsulated SOP solver and a couple of CopyData Solvers, which are responsible for generating the fractured geometry, then a "Fracture Pieces", which is responsible for creating the new DOP objects from the fractured geo and deleting the original object.

I'm just about done with a first pass at these DOPs assets, but thinking about it more I'm realizing that I really should move most of the parameters that govern how a particular object fractures into subdata on each object, so you can have different materials with different behavior within the same sim. Right now they're global parameters on the FractureSolver. So you'd have a Fractureable Object or whatever, which is just an RBD Object wrapped up with the data required for fracturing as well as the Fracture Pieces asset responsible for creating new pieces from objects created by that particular DOP.

Anyway, that will have to wait for the second release. Now I just have to finish the first one.

post-2001-1242939153_thumb.png

Edited by johner
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...