Making "Progressive render" More useful

While overall a less efficient way to render, progressive rendering is useful when you want to get as many samples as you can in a certain amount of time, without having to estimate the number of samples you will need. You can just set the samples to an absurd number, then let it go until you need to stop or are willing to call it good enough, which will net you with a full size image.

The problem however, is that to my knowledge there does not exist a way to stop a progressive render and then have it then be denoised at whatever level of quality it reached. As it stands, if you want to render progressively for an arbitrary amount of time you must sacrifice denoising.

I wonder if when using progressive rendering there could be something like a “finish rendering” button?
or maybe a tick box that says “process after cancel” or something like that?

4 Likes

Since it is slower, i never use it, and frankly I find hard to think how this can be useful anyway, because for long renders i prefer the command line solution.
A different approach could be to make a ‘fake’ progressive mode: render all tiles with 1 sample (or maybe custom value) and reiterate until one of these occurs: reach total samples, halt given by user, reach max rendertime. And in the future, with adaptive sampling, halt by noise threshold.
For each of the halt conditions, cycles would assume that sampling is finished (so final samples count should be something dinamic) and then postprocess the Image, e.g. denoise/composite

Great idea rHebKo. People differ and I (for instance) never use the command-line and use an iterative development cycle to driver my research (yup, not production). In such cycle, the progressive render mode is awesome: I can start the render, go for lunch, talk to colleague about a new idea/concept, and hit ESC when I get back to review the result for the next iteration. I do miss all the post-processing steps like composite/denoise. But there are challenges too: how to share rendering time between the various view layers, and how to define when to proceed to the next animation frame?

You can force it to use the compositor, if you have the render result up and the composite node network up in a different pane… mute one node and then unmute it and it will compute the composite over the top :slight_smile:

I have a solution for making of progressive rendering much faster. Test looks great (only CPU): Same rendering time like non-progressive rendering.

The solution is based on this patch:
https://developer.blender.org/D2396

Nice setting is for example in RadeonPR. There you can set the time of the rendering instead of samples. And when we are talking about progressive rendering, why is it possible to pause the render in viewport, but not in final render?

1 Like