nicoladanese Posted January 16, 2017 Share Posted January 16, 2017 Hey All! I'm trying to write out some vdb caches from a pyro sim. As long as I plug the DOP Import into a VDB convert and then into a file everything looks great and I get my density for render. Problem is, now I want to write out velocities of the volume so I can later import it in a fresh scene to advect some particles. I can't find a way to enable the DOP import to get the velocity, so I'm plugging the DOP I/O which has all the field I need. BUT the cache is getting much much heavier in terms of disk space. I am writing out 4 scalar fields (density vel.x vel.y and vel.z) so I'm expecting the cache to be roughly 4 times bigger, but in my case frame 10 was around 2 Mb and now is 240 Mb any one with some ideas? Thanks in advance! here some screens of how I'm setting this Quote Link to comment Share on other sites More sharing options...
iamyog Posted January 16, 2017 Share Posted January 16, 2017 You can have velocity where you have no density. DOP networks are using Houdini volumes so all fields should have the same dimensions and "weight", I mean, filesize. Since you convert to VDB you are scrapping out useless voxels. If you have the situation described above, each VDB cached field would have a different filesize, well, at least for density and vel. vel.x, vel.y and vel.z should be have the same file size since they are all part of the same original field. To import a field from a DOP network, use DOPImportField rather than a DOPImport. if you want to double check which voxels will be stored: after your VDB conversion, add a blastSOP and keep only one of your field then lay down a VDB Visualize Tree where you change the Active Voxels dropdown to Points. Depending on which field you keep in your blast SOP you might see more or less points. More points = more voxels = more Mb to store. Quote Link to comment Share on other sites More sharing options...
nicoladanese Posted January 16, 2017 Author Share Posted January 16, 2017 Hi Anthony, thanks for your reply! you were right, the voxels for vel are basically filling up the bounding box of the volume in a few frames (I guess the reasons are collisions with geos) , while the density is very limited (I've attached 2 images for comparison) Now I'm looking for a reasonable way of getting the velocity info without filling up the disks! I guess I can VDBresample vel field before writing it out to maybe a 10 times lower resolution field grid so I get the velocities I need , although I'm not getting the fine details... Quote Link to comment Share on other sites More sharing options...
Gavin Posted January 17, 2017 Share Posted January 17, 2017 If you only really want the velocity in the areas around the density then you could always keep your resolution but zero out the velocity in the other areas and deactivate those vdb voxels. Quote Link to comment Share on other sites More sharing options...
nicoladanese Posted January 17, 2017 Author Share Posted January 17, 2017 Hey Gavin, you mean to get the velocity grid only where I have density above 0? any idea how to achieve that? 1 Quote Link to comment Share on other sites More sharing options...
LukeLetellier Posted January 17, 2017 Share Posted January 17, 2017 You could use a Volume VOP to check whether a voxel has a density of zero, and then use that to activate an IF/Then Block that sets the velocity to zero. Would the VDB then delete the velocity voxels that were at zero? Not sure... 1 Quote Link to comment Share on other sites More sharing options...
shawn_kearney Posted January 17, 2017 Share Posted January 17, 2017 (edited) Does OP need 32bit fields for this application? Converting to 16bit using the Primitive SOP will dramatically decrease disk write. Just don't know if you need the precision for advection? Edited January 17, 2017 by shawn_kearney 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.