Add the "Suffern" adaptive supersampling algorithm described in class to
your ray tracer. I would suggest that you use a tolerace value around 5%.
Do not shoot redundant primary rays! Your adaptively supersampled image (at 4x) should use about the same number of rays and computation time as the uniformly super-sampled image (at 2x).
Be sure to save a working version of your code before making this change!
Generate a scene that contains at least two spheres, three non-box triangle meshes and two lights, one of which is white.
Generate three images of the exact same scene. In the first make an N x M image with no anti-aliasing. In the second make an 2N x 2M image and average down to an N x M image. (This is what we've been doing in the past few assignments.) Finally, make an N x M image using adaptive supersampling with two levels of subdivision.
Provide the same close-up view of some portion of your three images, to demonstrate that you've created 3 different results. In other words, a portion of your images should be zoomed up to show the effects of anti-aliasing.
Generate images where the intensity of the pixels is proportional
to the number of primary rays generated for the pixel.
Make at least three of them with different tolerance values, where the sampling patterns are significantly different.
Post your images (in TIFF or PNG format) in their native resolution (i.e. don't set their size in html) on a web site, with the associated computation times, and the number of image plane samples (primary rays) for each of your three images.
Tell me what file contains your super-sampling code. Direct me to the exact function(s) and lines in the file.
Upload your software to Bb Learn.
E-mail the URL of the web site to david AT cs DOT drexel DOT edu adn upload your software before the deadline.
You can find SMF triangle mesh models here.
The image on the left has been generated with adaptive supersampling.
The image on the right visualizes the number of rays per pixel with intensity.
Last modified on June 1, 2016.