Soft Shadows and Area Lights

I included soft shadows by modelling a point light as if it spanned a rectangular surface area. Each arealight has associated with it in the xml file two vectors that determine the plane on which the light rests.

scene rendered with light modelled as a point light

scene rendered with light modelled as an arealight with 4 samples

scene rendered with light modelled as an arealight with 16 rays

In the above pictures we can see the contrast between no arealight, an arealight with low sampling, and finally an area light with high sampling. In addition to sampling the arealight at regular intervals, in order to reduce aliasing effects from sampling that is too regular, I jitter each shadow ray by a certain amount. This introduces noise in exactly the same way as jittered super-sampling. This noise is acceptable to our eyes, and it serves to reduce the banding and grainyness characteristic of low sampled arealights.

Incorporating Super-sampling into the ray tracer