Cycles: refining an existing render by rendering again with different seed..?

I’m rendering an animation with Cycles, and I’ve got a hard deadline I have to have it done by.

Is there any reason I can’t do a “safety” render at, say, 100 samples, and then if there’s time, render the animation again - this time with the Sampling Seed set differently - and then just comp them together?

I find myself wondering why the Seed value isn’t automatically animated / randomised. I mean, under what conditions would you ever need the Seed to be repeatable? I’ve already discovered that quick preview renders [of animations] with low samples benefit enormously from having the Seed animated. You get fizzy noise that looks like film grain, rather than what looks like an ugly static dither pattern over your animation.

Might have to ask on the Python forum how to create a driver that always gives you a random seed (eg one that takes, say, time of day into account)

Thoughts?

I can see why there would be an option to use a static seed (development testing, fine tuning render settings, etc.) but it seems like it would be very useful if there were a check box either at the .blend file level or in user preferences called ‘dynamic seed’ or something similar.

Forgot to address your main question: sure you can do that. I’ve seen recommendations to do exactly that to speed up render farm jobs on single frames as well as reducing the # of samples needed to get an acceptably low noise render.

gregzaal wrote a small script to automatically do this…

If you enter #frame into the seed input, it will use the current frame number for the seed. Of course this won’t allow for image stacking.

If you need to combine images, you can use statements like #frame+1 as the Seed

Cool, thanks :slight_smile:

I’ll put forward a feature request for a “Randomise” checkbox - that way you could throw the same .blend file at any number of machines and you’d be sure to get back stackable renders.

I’d be surprised if the use cases for a static seed exceed those for a dynamic, random seed :slight_smile:

Cycles use combination of QMC and scrambling by pixel position based hash and that extra “seed” using XOR. It is very desirable to not mix Sobol QMC space between combined pixtures, for example if one have 4000 samples redner you better combine with another picture that started from 4001 sample then just rely on different “seed”, as you will lose Sobol discrepance property and get more noise.

Ideally, we must save and store start and end Sobol samples with saved picture, and continue using that values.