Dear All,

There is a technique called 'binary dicing' that means that you render your image sequences out of order. In theory it means that first you render your first frame, then the last, then the frame at the middle of your sequence, etc. In practice it means that you have every second frame of your sequence at the half of your total render time, every 4th frame in quarter of the total render time, every 8th frame in one eighth etc.

The logic is pretty simple to write. Needless to say how useful this feature can be in production. Yet the VFX world - at least what I see of it - seems to have forgotten this simple, elegant and useful technique. I first encountered it in the late 90's if I'm not mistaken, in Alfred, PRman's network scheduler.

Now I tried to implement it in PDG, but since batch processing have an assumption that batches MUST be and ordered set of frames, I can only give a suboptimal solution. The ideal solution would be:

1. generate the scene description out of order but in one batch (to amortize the cost of Houdini startup and scene loading). This is the part I can't implement at the moment.
2. render the images one by one also out of order with a standalone renderer

But it's not possible. I have two suboptimal alternatives:

A. generate the scene description in order in one batch, which means I have to wait this batch to finish before starting the image renders


B. generate the scene description frame by frame, swallowing the overhead of Houdini's startup and scene loading

I wrote this post because I think 'binary dicing' would be good for everyone. I think it should be a standard feature, but even if it's not, at least it should be reasonably easy to implement.

It's entirely possible that I don't see something that makes this unfeasible. If that's the case I would be interested.

Thanks for reading,

PS: I'm more than happy to share the Python code I came up with that shuffles any list into the 'binary diced' order.