Jump to content

Tips & strategies to speed up simulation workflows


art3mis

Recommended Posts

The whole topic of speeding up workflows is a book in itself in Houdini!

Certainly a common theme in many threads such as this

But the main focus of that thread is speeding up the render, while I am more concerned about the simulation portion since I am using a renderfarm and GPU rendering locally.

So, for instance with FLIP fluids, I recall reading somewhere(lost the bookmark) that slicing your fluid space can be one way of quickly previewing your FLIP simulation

https://www.sidefx.com/docs/houdini/dyno/distribute

 

Has anyone reading this tried this? Are there other workflow tips and or strategies to help speed up the simulation portion of workflows?

Edited by eco_bach
Link to comment
Share on other sites

I don't know about render farm specific techniques, but for local caching pipelines its all about the /out level, takes and wedges.

-Most people place there ROP_Geometry nodes at the end of there pipe in SOPS. In SOPS, it has no output. If you place it in /out level - It has a output. Then you can wire multiple rop_geometrys together and run the bottom one, it will then cache all of them top to bottom.

-Due to heavy memory sims, Its more efficient to break it up into multiple smaller caches if possible, example; clustering for pyro, wedging with the seed for FLIP. You can use a wedge to cache your simulation multiple times and each time change the seed value. This is the only way I could cache 100m FLIP sims on a 8 thread 32GB workstation without hitting memory limit.

- For iterating, use a Wedge (setting up all the parms you want to test) and set it to the OpenGL ROP, this will give you viewport renders of all your different settings without having to go in and manually flipbook each one.

An example cache pipeline example using the /out level, takes and wedges for a FLIP project;

-Placed ROP_Geometry in /out and set it to cache base mesh (compressed_cache). Set Wedge to cache this ROP_Geometry 7 times, each time changing Jitter Seed in wavetank_inital/wavetank.

-replaced compressed_cache with a file merge using $SLICE to bring in 7 seeds.

- Made 7 Takes, each take changing the $SLICE range , so each seed is in its own take. This is object merged into whitewater_source by default shelf setup.

-For the 7 takes, Disable Spray. Copy the takes and Disable Foam & Bubbles. So we now have 14 takes. foam_1-7, spray_1.7.

-In whitewater_import, null out your whitewater sim after the attribwrangle. Place rop_geometry in /out level and cache this ww null. The Output File must match your take setup, ie.

foam_1 = $HIP/sim/foam/foam_1.$F.bgeo.sc

foam_2 = $HIP/sim/foam/foam_2.$F.bgeo.sc

spray_1 = $HIP/sim/spray/spray_1.$F.bgeo.sc

Place a Wedge and cache the rop_geometry that is caching your whitewater that we just setup. Set to Wedge Method - By Take. The take you select in this option - It will cache all its children.

Peter Quint - Millions II will show you how to use wedges/takes.

 

Capture.JPG

Also, Deadline submission script has option to submit Wedges as separate jobs, and can be another type of distribution technique where multiple machines and run the sim.

Edited by Yon Anadeyo
  • Like 5
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...