Soft Reflection Backscattering

A perfectly reflective surface will bounce light in a direct line to the corrosponding pixel of the camera, and this is default case for rendering. However, to create a soft reflection, multiple indirect bounces must be integrated.

This is computationally intensive.

Yet, it is also true that rough surfaces bounce light in an indirect path; that is to say, incoming light from rough surfaces originate from somewhere nearby the pixel in direct alignment.

These pixels have already been rendered somewhere else on the screen, and need not actually be recalcualted.

Due to this spatial coherence, soft reflections can be intergrated by sampling pixels with respect to the surface roughness, distance, and angle of reflection from the buffer of the previous frame.

Live Demo with Sourcecode

Running on a landscape scene.