min_activation_impulse fails with constraints?

   4204   7   1
User Avatar
Member
34 posts
Joined: April 2015
Offline
I have simple case with a bunch of packed rbds using min_activation_impulse to keep them all still until they are hit by another collider. It is set up by adding a float attribute to the packed rbd points f@min_activation_impulse = 1, and on the RBD Packed Object in DOPS the Initial Object Type is set to Create Animated Static Objects. This works as expected. However as soon as glue constraints are added between the rbd packed objects they never activate. If I switch the RBD Packed Object initial object type to active then the glue constraints work fine, but my bodies are all active (and falling) before the main impact.

In the attached example hip:

Play with /obj/geo1/dopnet/gravity1 active and notice the bodies remain inactive until the ball hits them (min_activation impulse working!)

Play with /obj/geo1/dopnet/constraintnetwork active and notice the bodies never activate.

Next change the initial object type on /obj/geo1/dopnet/chunks to ‘active’ and notice that the glue constraints behave as expected (but the bodies are active from the start()

Am I doing something wrong?

Attachments:
min_impulse_not_working_with_glue.hipnc (212.2 KB)

User Avatar
Member
2531 posts
Joined: June 2008
Offline
I changed a couple of things.
For some reason you have changed the axis on gravity. Gravity typically affects the Y axis, not the Z axis. Also, on the Constraint network, delete the field Override With SOP and place an expression $F==1 in it's place. Override with SOP causes constraint bonds to be applied every frame, this is a bad default, but most of the time you just need the constraints applied on the first frame and will then use other methods to manage or break them later on.
Edited by Enivob - May 29, 2017 08:43:19

Attachments:
ap_min_impulse_not_working_with_glue.hipnc (211.1 KB)

Using Houdini Indie 20.0
Windows 11 64GB Ryzen 16 core.
nVidia 3050RTX 8BG RAM.
User Avatar
Member
2 posts
Joined: May 2017
Offline
I was having the exact same problem today. Enivob, your setup does seem to fix it. But, it also completely bypasses the Impulse activation. You are setting everything to active on the first frame.

What cruiserandmax and I are trying to do is have all packed pieces inactive until they are impacted, they would then turn active. And, also have working constraints. Right now I am unable to get impulse activation working with constraints. My guess is that the constraints are stopping the impulse activation from ever hitting its threshold to become active. Seems like an order of operation problem to me.
User Avatar
Member
34 posts
Joined: April 2015
Offline
Thanks for they reply! Unfortunately even with your changes the chunks still fail to activate properly when the Initial Object Type for /obj/geo1/dopnet/chunks is set to ‘Create Animated Static Objects’. Sorry I should have saved the example scene with that already set because that is the real problem here.

Any ideas at all would be appreciated.
User Avatar
Member
2531 posts
Joined: June 2008
Offline
They don't react because you have set them to “static” even if they were deforming (i.e animated), which they are not.

There is a built-in attribute called i@active which is an integer that controls if an individual piece will participate, or become active in a simulation. When you set an object to static you are essentially setting i@active equal to zero.

Try this…
Make your above required setting of Create Animated Static Objects then go up one level and add another line of code to your wrangle.

Try the simulation with i@active=0; and with i@active=1;. When it is set to 1 the pieces will participate. But that is essentially the same as choosing Create Active Objects to begin with.
Edited by Enivob - May 30, 2017 00:06:12

Attachments:
Untitled-1.jpg (76.1 KB)

Using Houdini Indie 20.0
Windows 11 64GB Ryzen 16 core.
nVidia 3050RTX 8BG RAM.
User Avatar
Member
2 posts
Joined: May 2017
Offline
Enivob - your kind of missing the point. Its clear that it works with Active set to 1. But, what we want is Active set to 0 for all pieces. We want to allow the Impulse Activation to switch the Active (0's) to Active (1's) based on the impact of the object. The whole point here is to get Impulse Activation working with constraints. Not completely bypass the Impulse Activation Method.
Edited by jcolemanf12162a68f03428e - May 30, 2017 12:09:09
User Avatar
Member
2 posts
Joined: April 2016
Offline
hey guys!

Im having an issue with the f@min_activation_impulse: I am trying to make the objects go active when they are hit by a static object but I am not being able to have a result with this. does anyone know anything about this?

Else how can I have a glued RBD object inactive or sleeping that is going to be hit by a static object and destroyed? (PS: parts of the objects are hanging in the air so I cannot use inactive geometry to add a glue constraint to it)

Thanks!
User Avatar
Member
221 posts
Joined: Feb. 2016
Offline
did anyone ever find a solution? as soon as I turn on the glue constraints the min-impulse stops working
Thanks,

Evan
  • Quick Links