Jump to content

emit packed rigid bodies efficiently


mestela

Recommended Posts

I setup a simple scene of a packed pigs head, if I keyed the 'creation frame' parameter to be every n frames, I could emit pigs, all good.

That said, performance dropped off sharply after about 10 pigs. Looking in the geometry spreadsheet I could see that it was making a new rbdpackedobject for each pig:

rbd_simple.gif

Some trawling of the forum turned up a handy example: http://forums.odforce.net/topic/20915-emit-rbd-problem/#comment-124994

 

The basis of it is to have a sop solver alongside the rbd solver,  add a pig every n frames, and join them together with a multisolver.

This works, all the pigs remain in the single rbdpackedobject, performance stays zippy.

rbd_efficient.gif

 

Before I take it as verbatim though, was wondering if this is the cleanest way to achieve this? It feels a bit convoluted, most other rbd things make sense (well, a little more sense)... anyone?

 

Scene: rbd_emit_simple_vs_efficient.hipnc

 

Link to comment
Share on other sites

This is the way I always do it. Would also love to know if there's simpler ways.

It gets weirder when you have multiple rbd packed objects and you have to sort out which one to put the geo from the solver in. If you don't tell it not to, you'll get 1 added to each object you have....

Link to comment
Share on other sites

cool. asked a guy at work, he's using much the same technique, so I guess this is the way to do it.

I think from that same thread I linked above it talks about sending geo to specific rbd objects, using the @name attribute. Might have a play with it tonight...

Thanks for confirming my suspicions!

-matt

 

Link to comment
Share on other sites

I gave this a go but ran into a problem. I'm trying to fracture the shape on collision inside of the DOP but can't seem to get it to work. It's like the Voronoi node is not seeing it as a shape, but still a point. I'm also new to Houdini, so most likely I'm just not doing something correctly.

Link to comment
Share on other sites

  • 2 months later...

In a packed prim sim, is it possible to emit packed rigid bodies and animate the scale each rigid bodies over time? So each point would emit at a scale of .1 and animated to a scale of 1 over a second or two? I believe this is with fractured rigid bodies but I would like to control the sim with pop forces.

I'm attempting to create an effect of particles emit over time at a small scale, scale up while colliding nicely. 

Thanks in advance!

 

Edited by Citadel15635
Link to comment
Share on other sites

  • 3 months later...

Thanks a lot for the files, it was really helpfull ! 

@anim > Are you forced to emit from the object that will be the rbd ? I can't figure out how to emit your torus from something else (a grid for exemple) without using @mestela's file... 

Also, does anyone have an idea for @Citadel15635's question about scale ? I am pretty intersted to push things that way too ! :) 

Link to comment
Share on other sites

  • 4 years later...

Hi, I wanna know how to emit different RBD-packed objects (with different properties such as density, friction etc) with this POP source method? You can use this method (using POP to emit packed obj) with a single RBD object node. But with several RBD-packed objects can the same method applied?

 

PS: I know I can use wrangle to create those attributes in SOP and merge them into a single Packed object. But I want to have easy control of each rbd object. Thanks!

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