Jump to content
DeeLan

Subfracturing in a SOP Solver

Recommended Posts

I need some suggestions on how to fracture an existing RBD object inside of a SOP Solver. The two solutions I've tried so far crash after a couple of fractures. All it is is a ball floating around and when ever CHOP network returns a value of 1, each piece of the ball splits into two smaller pieces.

For those interested in how I'm currently doing it, I've got my RBD object plugged into a multi-solver, with the Rigid Solver in slot 0 and the SOP Solver in slot 1. Inside the SOP Solver there's a switch that reads some data from a CHOP network. If the result is not 1, then it just puts through the existing geo, if its 1 then it (tries to) fracture the object. My current solution is to unpack the object, scatter points and voronoi fracture the object, assemble the object, transfer all attributes except for name and id from the piece being fractured, and then give each piece a unique name. This kinda sorta works except for the fact that after a few fractures it just crashes. CPU and RAM usage are basically nothing, it just seems that I've done something wrong and Houdini doesn't like it.

dancing_sphere_odforce_v1.hipnc

Edit: This latest version is working a bit better, but still crashes a bunch

dancing_sphere_odforce_v1_5.hipnc

Edited by DeeLan
Update

Share this post


Link to post
Share on other sites

works for me. was able to play the whole framerange without any trouble (H16.5).

 

Edit: H16 does crash for me too

Edited by 3dome

Share this post


Link to post
Share on other sites

That's really weird. I'm getting crashes in both. Do you have any suggestions for how to approach this differently?

Share this post


Link to post
Share on other sites

yup weired. just tried it again and now it did crash in 16.5 aswell

anyway I had the idea of prefracturing it down to the max fractured level and using constraints to hold the pieces together...

it made me crazy but I finally got a solution working. but I feel like I missed something that does the same thing waaaaaay easier 

 

dm_dancing_sphere.hipnc

 

edit: might have a closer look at why your file aint working when I got time

Edited by 3dome

Share this post


Link to post
Share on other sites
On 22/11/2017 at 11:37 PM, 3dome said:

anyway I had the idea of prefracturing it down to the max fractured level and using constraints to hold the pieces together...

it made me crazy but I finally got a solution working. but I feel like I missed something that does the same thing waaaaaay easier

Yeah its not fun is it haha. But i guess for now its the method we're stuck with.  :(

Share this post


Link to post
Share on other sites

@3dome I Believe that the fact that multiple fractures left us with ridiculous ngons is at least partly to blame for the crashes. I've reworked the sop solver a bit and added a dive node to make sure we always have tris. Its still crashing but its alot better than it was before. Funnily enough I've found that lowering the resolution of the sphere actually causes it to crash more often.

dancing_sphere_odforce_v1_5.hipnc

Share this post


Link to post
Share on other sites

i got it working right thru....so here's what I've done...bear in mind..I'm very inexperienced at this...

01) I looked at your sopsolver, dive in, dop_geometry, now you're creating PACKED geo to start off with and also breaking them as you go and then create more PACKED geos...and yet your Import Style....doesn't make sense to me....I stress...I don't know shit....but I simply do what makes sense to me so I changed Import Style to Fetch Packed Geo

02) I see you're doing attribtransfer , except for id and name...I guess name comes from the orig assemble and also the assemble in the for loop....so fine there...but I can't find where new ids come from...how does a new 'broken' piece get new id ? Dunno, so I enabled Add DOP Object Id Attribute (in dop_geometry node)

It then works...

For low res on the starting sphere, I think this is just a common problem with boolean/fracturing logic. If you boolean a simple box...incredibly low res...there's simply not enough geo for it to play with so it creates s*** geometry as a result leading to crashes.

Edited by Noobini

Share this post


Link to post
Share on other sites

Hey thanks for your help I've got it working now even with lower res spheres :) Your note on the ID attribute sparked some thought. I had the wrangle set the ID to -1, as was suggested to me over on the Houdini Artists Facebook Page ( the logic being that doing so forces Bullet to calculate a new collision hull). But After reading your comment about the IDs i changed it to make the IDs equal to the point number, and now it works perfectly :)

Share this post


Link to post
Share on other sites

that's the advantage of being a noob...a noob has no advanced knowledge...so all he can rely on is 'common sense'

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

×