Whatsinaname Posted May 15, 2014 Share Posted May 15, 2014 (edited) I'm getting nuts with a scene where water is flowing through some tubular/ pipe geometry. It is no problem creating a VDB out of the original geo, without any holes just the way I want it to be interpreted by the solver. However, no matter what I do, when I simulate using that geometry, the solver doesn't get it. Visualizing Collisions in my flipobject node, my tube looks more like a skeleton than anything else. I tried setting up collisions in two different ways: 1. static objects I set the SOP path to my VDB, in Collisions I changed the mode to Volume Sample and set my VDB as proxy volume. As far as I understand the system, it should use the Proxy Volume as collision volume. But it doesn't...all I get is the "skeleton" and no working collisions. Then, inside the static object node, I ticked on Collision Guide Geometry, set it up to be a smooth collision object and wrote that to disk using File/ File mode. I made sure it is set to Read or at least Automatic...simulate (resetting my DOP net)...and there is my skeleton again and all the water running through. Everything I see in Show Collision Guide Geometry seems to have nothing to do with the object taht the solver calculated for collisions in the end. 2. Volume Collisions. Inside DOPs, I create a sourcevolume node, set it to collision and set the Volume Path to my VDB (and scale source volume to -1). On my VDB, I changed the name of the SDF intpo collision, and created an attribute collisionvel set to point.v (which I initialised with the normal in a VOPSOP) ...which is getting me the same skeleton and leaking as with the static objects. Does anybody have an idea what might be going wrong, here? Or what else I could try to make my collsion Volume work? Edited May 15, 2014 by Phlok Quote Link to comment Share on other sites More sharing options...
ikarus Posted May 15, 2014 Share Posted May 15, 2014 Have you tried increasing the collision field resolution? Quote Link to comment Share on other sites More sharing options...
goldleaf Posted May 16, 2014 Share Posted May 16, 2014 With VDBs as a reference volume, you'll have to toggle the Invert Sign parameter under the Collisions tab. That's usually the problem for me (or, like ikarus suggested, increase the collision resolution). Quote Link to comment Share on other sites More sharing options...
loudsubs Posted May 17, 2014 Share Posted May 17, 2014 With the static object method, try converting the vdb into a regular houdini volume. Works in this example. Couldn't get it to work with the collision field method using a source volume node, the particles go crazy. Maybe someone else can shed light on the collision field method. flip_collide_01.hipnc Quote Link to comment Share on other sites More sharing options...
Whatsinaname Posted May 20, 2014 Author Share Posted May 20, 2014 Thank you very much. I didn't notice the collision field resolution is taken into account when setting a Proxy Volume. I think this is something that should not be, as I feed in a Volume (the proxy volume), so why doesn't Houdini just use this Volume, but will create a new volume out of that, instead? This doesn't feel very efficient to me. Quote Link to comment Share on other sites More sharing options...
ikarus Posted May 20, 2014 Share Posted May 20, 2014 Data structures in DOPs are different than sop data structures, it has to be converted to the context. Quote Link to comment Share on other sites More sharing options...
eetu Posted May 21, 2014 Share Posted May 21, 2014 (edited) Thank you very much. I didn't notice the collision field resolution is taken into account when setting a Proxy Volume. I think this is something that should not be, as I feed in a Volume (the proxy volume), so why doesn't Houdini just use this Volume, but will create a new volume out of that, instead? For starters, the point of a sparse VDB SDF is that it is not defined in the whole volume, just in voxels near the surfaces. The simulation on the other hand is calculated in every voxel of the volume, and needs to work on dense volumes (values defined in every voxel). Simulating on sparse volumes (not just collision, but other fields as well) is a hard problem, I think it has been done somewhere so I guess it is possible, but at least with the current Houdini simulation framework it is not doable. Hopefully at some point in the future In practice, even dense collision volumes are resampled into the simulation grid in Houdini FLIPs, which might sound like extra work at first. You could think of it as a programming optimization deal. When the simulation is run, you need to sample the collisions at simulation voxels in several stages of the sim. I guess you could sample the original collision surface every time, but precalculating the collision volume once and reusing the already resampled surface is most probably a good tradeoff. Edited January 9, 2015 by eetu 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.