Jump to content
johner

Voronoi - dynamic - location based fracture (WIP)

Recommended Posts

Oh cool, yeah I knew about the collision passes, didn't know about the multithreaded SDF generation, been using it for like 4 months and that's new to me :-P

Gonna have to check em out!

Share this post


Link to post
Share on other sites

Johner thanks for great videos examples and scene files...

Edited by CeeGee

Share this post


Link to post
Share on other sites

Hey Johner,

Thanks a lot for the example file, very impressive, you've almost convinced me to build a setup using procedural shattering.

however I was wondering if you bumped in the problem of re-creating consistent topology from the last frame of the sim so that there would be no topology change throughout sim.

In other words a nice way to grab all the shattered pieces at the last frame and trace back their motion so that we keep the same number of shattered pieces since frame 1.

This would be cool as a post dop process but I've got a little problem figuring out where to start :)

Thanks again for your help

P

Share this post


Link to post
Share on other sites

OK, so documentation and examples next, but I wanted to describe one feature I implemented trivially this morning in one of those incredibly cool "power of Houdini" moments.

Some background:

The Voronoi fracture SOP takes two inputs: the mesh to fracture, and the points around which to build each Voronoi cell. So, assuming that all of the points come from within the volume of the mesh, you'll get one piece/fragment per point. This is really nice, since it gives you complete control over the number and placement of the fragments. Anywhere there is a higher density of points, you'll get more, smaller fragments. So to get location-based fracturing to work, you just have to generate more points closer to the impact location.

Within the SOP Solver of the Fracture Solver asset the basic algorithm for fracturing looks like this:

--Test object is big enough, impact hard enough for fracture

--If so, snap impacts to surface of object with Ray SOP set to MinDistance

--Copy a metaball of user-defined radius to each impact point, call this the "impact zone"

--Create a signed distance function from the metaballs with IsoOffset in Metaballs mode

--Normalize and invert this by dividing by the minimum value of the SDF and clamping to (0,1)

--At this point you have a density volume that ranges from 1 at the impact point, falling off to 0 at the outside of the impact radius

--Merge in the current object's collision SDF and intersect the impact volume with that

--Scatter points by density in the resulting volume and feed to the Fracture SOP

So you get more points the closer to "ground zero" you are to the impact, which leads to more, smaller, fragments.

The "Visualize Impact Region" feature works by just feeding the un-intersected impact volume to a VOP Sop that does a VolumeSample and maps the impact density at a given point to a red/white ramp.

Anyway, I'd been thinking about how to do explosion-based fracturing, i.e. non-impact based fracturing based on how much within the blast radius of an explosion a particular object is. A good way to do explosions is by attaching animated, quickly expanding metaball geometry to a Magnet Force DOP with a large negative force scale. That metaball geometry defines the blast radius. You might see where this is going.

I realized all I had to do was ObjectMerge the metaball geometry from any Magnet Forces attached to a given object, and merge those with the metaballs from any impacts to create the overall "impact zone" described above. Then all the various SDF manipulations are exactly the same. So, an ObjectMerge, a Merge, and a couple of Switch SOPs to enable/disable the feature, and I had Magnet Force explosion fracturing. It was literally four SOPs. How cool is that? Flipbook:

here

Share this post


Link to post
Share on other sites

hey I just started taking a better look into your tool and I was wondering, if there was a way to only have one fracturing, so no secondary fracturing of the Object.

And where can I change the strength of an object...

I want to break a cafe mug on a table in one DOP... but they would have different strength resisting the explosion based on the nature of the material they are build from, where can I change those attributes if possible?

By they way, the tool is amazing!

Share this post


Link to post
Share on other sites

Hi All!

I have a large box, a broken by Voronoi. I throw it into another box. Count 72000 polygons. The simulation lasts many hours, and 190 frames = 102 Gb. Is this normal? Are there any methods to optimize? Are there any faster simulate engines?

Please help. I have no experience with RBD DOP network.

networks:

post-6294-132835985633_thumb.jpgpost-6294-13283598231_thumb.jpg

video:

stone_new.mov

files for the flipbook. sim loaded from disk 2 hour :(

Share this post


Link to post
Share on other sites

Hi All!

I have a large box, a broken by Voronoi. I throw it into another box. Count 72000 polygons. The simulation lasts many hours, and 190 frames = 102 Gb. Is this normal? Are there any methods to optimize? Are there any faster simulate engines?

Please help. I have no experience with RBD DOP network...

Based on your screenshots it seems you are caching the simlation as a simulation.

Most of the time it`s not necessery. You should get the data from the DOP

network to a SOP network with the dopimport node and cache only the geometry.

Simulation caches contain much more data than simple geo caches.

It won`t affect the speed.

I don`t get what bbox is doing, especialy that it`s turned inside out

with the invert sign parameter turned on. You should attach a scene file,

or people won`t be able to check if there are options to alter parameters

or the setup to speed up the simulation.

Share this post


Link to post
Share on other sites

Hi all!

I have a fractured box (screenshot below), and i want to get collapsing result like on this video

With "translate" node i animate the position of fracture points, to get a progressive collapsing result, but on simulation i have a bad result with one peace of geometry(screenshot below), i'm new in Houdini help me please!

YUE0.jpg

N3P2.jpg

Edited by GeT

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

×