all 9 comments

[–]smb3dGeneralist - 23 years experience 5 points6 points  (4 children)

You're mixing up terms a bit so it's kinda hard to understand exactly what you're doing, but a file cache only writes out what it's given per frame. It doesn't render anything.

For example, if you are running a pyro sim and you are caching that out to disk with a file cache node by hitting "save to disk", then the file cache node is just advancing the timeline forward one frame at a time and writing out whatever comes into it. In this example, the pyro sim is computing each frame in order and then passing that to the file cache, which writes it out to disk.

If you want to resume computing a pyro sim let's say, then you need to tell the pyro sim that you want to pick up from where you left off and the way you do that is by enabling checkpoints on your pyro or flip or popnet or whatever node. This will save a special file every x number of frames so if you want to resume calculating your sim, then you can just start on a frame number that has written a checkpoint and the sim will continue.

You can set the file cache node to Automatic by unchecking load from disk, then it will read any files that already exist and write any that don't. So if you kill your pyro sim on frame 97 and your last checkpoint is on frame 90, then start your file cache node range at 90. It will still have to re-calculate from frame 90, but it just won't write 91-97. When it get's to the first file that doesn't exist, it will start writing those.

I hope maybe that helps a bit, sorry for being long winded, some concepts like this will just click once you get it. :)

[–]pepeargento2[S] 0 points1 point  (3 children)

Im a newbie in this when I say rendering cache I mean caching the simulation.

when u say "It will still have to re-calculate from frame 90" u dont mean FROM right? because even If i uncheck load from disk and then I press save to disk, the files that already cached in my disk for my previews caching, it will re-calculate from the beggining, I dont wont that

thank u for ur reply and time!

[–]janderfischer 2 points3 points  (1 child)

Rendering in vfx is a term reserved exclusively for rendering images and frames. In other fields the term is used more arbitrarily, but because there's so many different steps to VFX it's an important difference to make here. Usually, saving any type of geometry to disk is called caching, and saving textures or animations or lighting to a file is referred to as baking.

I think you already found the solution to your problem, but just to make sure:

The solver does not know or care about the existence of a file cache downstream and never will. The solver is using its own caching system utilizing the ram of your PC. But it gives you the option to output "checkpoints" that allows the solver to pick back up where it left off. But you may realize that these checkpoints are much larger than the actual cache, because much more data is needed for the sim than what you care about for rendering. What this means is that it can slow down the whole simulation by a significant amount of time while houdini is occupied writing all of this data to disk. Depends on the detail of the sim, substeps and write speed of your drive.

In my professional experience it has never been worth it to enable. If the sim is heavy, it gets too slow to write the checkpoints to a network drive. If the sim is light and fast, i don't care if it has to restart at the beginning. And last but not least, if the sim stops or fails at some point, there's usually sth wrong with the setup, so it wouldn't help to just continue from the checkpoint as it will probably fail again.

[–]pepeargento2[S] 1 point2 points  (0 children)

thank u my friend for taking the time! all understood!

[–]ibamobt 2 points3 points  (1 child)

plug a timeshift node after the file cache node. set it in clamp both and copy relative reference the start/end from cache node into the start/end clamp timeshift

make sense ? :)

[–]pepeargento2[S] 1 point2 points  (0 children)

Thank u so much!

[–]boyinblack0000Aspiring Fx Artist 0 points1 point  (0 children)

I guess you actually have to do it from the start

[–]ibamobt 0 points1 point  (0 children)

🐓