Jump to content

VDB boundaries colliding on FLIP


Recommended Posts

Hey guys,

I'm having some issues with a FLIP collision, seems my VDB collider boundaries are affecting the sim, anyone knows what can be causing this? 

I'm using static object + static solver with a proxy volume as collider.




Link to comment
Share on other sites

  • 1 year later...

Faced the same thing before with FLIP, once again right now using grains. I'm trying to figure out what the solvers are doing(either FLIP or POPs for that matter) in that case. It seems that feeding a moving collider that was pre-baked via Volume Sample is the issue. If i use Ray Intersect it's fine but it ruins the purpose of optimizing your collisions for sim times. As far as i can tell, it's as if the solvers are(not?) performing a volumesample function on the static object for the collider and the points outside the bounds of the volume are getting a value of zero?..Only of the edges of the volume bounds...? Which would result in a collision surface being detected...

Again, using ray intersects works so it's really confusing to tell why the particles collision interpretation changes between those input methods...

Link to comment
Share on other sites

The SideFX documentation for the Static Object DOP says this about Volume Sample method:


Volume Sample

The divisions are ignored in this mode, instead they are computed from the first volume or VDB primitive in the geometry. The computed divisions are chosen to match the voxel size of the source volume. The volume primitive is sampled raw and treated as a signed distance field. The assumption is that the source is the output of an Iso Offset or VDB From Polygons SOP. If it isn’t a true signed distance fields, unusual things may happen with RBD collisions.


In my case i'm always using the vdb from polygons method so i guess it should work as intended. I'm aware this reply doesn't help much but it felt it makes sense to say that Houdini expects the Volume Sample to be fed exactly this...

Link to comment
Share on other sites

After trying a few approaches this morning, a fix that worked for me in the case of POP grains was to use the exact same voxel size for the collider as the particle separation size of the POP grains microsolver.


Hope that helps anyone, that might as well be a clue for the FLIP solver...

Link to comment
Share on other sites

  • 5 months later...

i get the exact same issue, but i can't remember having seen this before , weird ?

- i use pre cache vdb collider loaded as static object 

- the collider is a deformed object

- when i don't activate viscosity everything work smoothly 

- as soon as i activate viscosity the solver stop to use the vdb collider, and is unable to evaluate the sdf grid properly

- instead it use the bouding box of the collider 

I'll investigate on this and this if i can find a proper solve !



I have attach a simple scene that illustrate the problem.



Edited by sebkaine
Link to comment
Share on other sites

thanks for taking the time to open the scene ryew. i'm on 18.5.633.

the weirdest thing is that after your comment,  i just reopen the hip delete the noViscosity group and test the viscosity only, and now it looks to works. 

ahaha something esotherical here, generally in those situation the problem come from behind the keyboard.

the hip i share is a quick exemple of a scene i can't share here, where the problem is the same. i'll double check that tomorrow. 



Link to comment
Share on other sites

well i think i get where the problem come from. 

my collider was not properly setup. I use direct vdb conversion instead of the collisionsource SOP.

thus my emitter wasn't properly evaluating animation on the collider for substeping.

things works without viscosity and stick on collision because i guess houdini only need one substep to solve the calculation.

but when visco and sticky collision were activated houdini need more substep.

so i think that each time the solver was trying to substep , it can't find proper info from the collider and thus fallback on the bbox of the object. 

using collisionsource that use a proper timeblend solve the issue. 


Edited by sebkaine
  • Like 2
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.

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