I used a box filter, gamma correction was 2.2, and I normalized by the maximum
luminance (ignoring the light). Note that the cos(θ) renderings were done
using a fixed depth of 10 and the light emissions were not interpolated. For
the other renderings I interpolate the light emissions and a preliminary max
depth of 3, after which Veach's efficiency-optimized Russian roulette kicks
in and can continue for up to a total of 200 ray cast although usually it does
less than 10, looks better, and runs faster. If you are going to do
Russian roulette, I highly recommend you use Veach's version since it keeps the
variance down (which means it's faster for equal quality).
I use uniform sampling in my combined importance sampling in order to have a
lower bound for the combined pdf. Otherwise, it's possible to get a sample with an
extremely low pdf which would in turn cause the pixel to get saturated
(something divided by a very small number is very big!).
Samples per Pixel | Importance Sampling by cos(θ) | Importance Sampling Area Light (Direct Lighting) | Combined Importance Sampling (cos(θ), direct lighting and uniform with respective weights 1.8/3, 1/3, and 0.2/3) |
100 spp | |||
1,000 spp | |||
10,000 spp | |||
100,000 spp | No point doing this, the image above this one is already perfect... |