Homework 3 - Simple Monte Carlo Ray Tracer

Michael Callahan


Sin of Exponential Function

Note: it appears that the precision of the sin and exp C functions isn't good enough to render the very far right hand side of this image. When many samples are used (> 50 * 50 per pixel), the image still doesn't converge to grey, but is still banded.

Regular box sampling



1 sample per pixel


4 samples per pixel


16 samples per pixel


64 samples per pixel



Jitter sampling



1 sample per pixel


4 samples per pixel


16 samples per pixel


64 samples per pixel


Multi-jitter sampling



1 sample per pixel


4 samples per pixel


16 samples per pixel


64 samples per pixel


Adaptive Multi-jitter sampling



Multi-jitter variance for 4 samples/pixel


Multi-jitter variance for 16 samples/pixel


Adaptive sampling using variance to determine how many pixels to resample.

Ray Tracing of Infinite Checkerboard

Regular box sampling



1 sample per pixel


4 samples per pixel


16 samples per pixel


64 samples per pixel



Jitter sampling



1 sample per pixel


4 samples per pixel


16 samples per pixel


64 samples per pixel


Multi-jitter sampling



1 sample per pixel


4 samples per pixel


16 samples per pixel


64 samples per pixel


Adaptive Multi-jitter sampling



Multi-jitter variance for 4 samples/pixel


Multi-jitter variance for 16 samples/pixel


Adaptive sampling using variance to determine how many pixels to resample.


Another interesting thing to do would be use the variance image as an image mask and blur the image everywhere the variance is high, rather than doing any resampling.