Adaptive rendering based on a norm of rendered pixels

How it works?

This patch contains very simple modification for adaptive rendering. Now it works only for CPUDevice, but it is expandable for other types of devices.

The settings is placed under Sampling Category and contains this values:

  • Norm – || rgb_current – rgb_previous || – distance between two colors of same pixels after “Step” samples
  • Step – the step of checking in the loop over samples
  • Confirm – the count N of repeated checks of “Norm” after N-“Step”
  • Log – it helps for finding “Norm” value – writing an information to stdout
  • Samples/AA_Samples – PT/BPT – maximum samples

All parameters describe a stopping criteria for quasi monte carlo simulation. This criteria checks the convergence of the calculation of the rendering equation. The norm value and the step value describe a noise/smoothness. The confirm value increases the propability of the correct calculation of the norm.