IMPORTANT. I haven’t looked up to see if this idea exists already so, please, don’t accuse me of stealing idea. I figured it out myself, but it doesn’t mean that somebody hasn’t came up with it before.
OK! Once that’s said, let’s get to my idea. So how would I call it is… Hm… Interlaced Double 2-Pass Render or something like that.
Whats my idea?
Firstly, every 2 passes(samples) are switching between horizontal and vertical interlacing. During first passes, for example, it uses horizontal interlace, during next 2 passes it uses vertical, then again horizontal etc.
So now - what happens during first 2 passes?
In the first pass every odd pixel in horizontal direction calculates path-tracing. Middle pixels interpolate between 2 side pixels basing on difference of currently calculated shader’s roughness, color and mixing factors. It will blend more with the more matching material. En the second pass every even pixel in horizontal direction calculates path-tracing. A similar interpolation is executed to slightly update the in-between pixels.
Next 2 passes it does the same vertically.
This repeats all the time. To get acceptable results it may need as a minimum 8 passes(yet in standar path-trace is similar as the noise makes it disgusting below 8 samples). The difference from path-trace at low samples is less noisy, but more blurry look. Also there might be some artifacts at low passes.
Why would this be good?
It really may seem horrible if we look at first few passes. However, if we examine further passes (e.g. 16 passes), it already has less noise than 16 sample basic path tracing. And it also calculates faster. It’s yet a bit more blurry. With 56 passes it may render around as fast as 32 sample Cycles render, however, it would have significantly less noise aswell as it would have overally obtained it’s desired detail. This way you could achieve a bit approximated(almost unnoticeably) result in fast time step. For example, if you need to render something quickly and you know that it’d need at least 256 samples of Cycles rendering, you could just use this method with around twice less passes. It’d have around the same amount of noise. However, it would render much faster(around 3 to 4 times faster).
What I suggest?
Maybe someone could try implementing this in Cycles as a fast-render mode? It could become a really cool feature.