We have a publishing system that lets multiple exports of different assets happen parallel (so that we dont have to reevaluate the scene for the frame range multiple times).
In this setup, we for example:
initialiaze all pointcache files, xmeshes, transform caches
loop through the framerange once, and sample each of the exported caches for that frame range
close the files, finish writing, or flush memory buffers to disk
With a “one command does it all” approach, this would not work :-\ Any chance we could have the same functionality with a ‘per sample’ cache command?
I feel we should allow a post-caching optimization pass that compares hashes of channels on consecutive frames and updates the XMesh XML files to make them point at previous frames if no changes are recorded. Then the extra files would be removed. We also need this for Deadline processing because if you run an animation range of 1000 frames on 100 machines, you will get every 10th frame unoptimized (as the separate task doesn’t know about the rest of the sequence, but can optimize within itself).
Obviously, this wouldn’t be as smart and as fast as the current method since there would be a lot of redundant saving going on in the first pass, but I still think it is good to have.