In this project we add antialiasing support to our ray tracers.
Requirements
Implement adaptive antialiasing with multiple samples per pixel.
Render multiple images of one or more scenes using antialiasing with different parameters and compare results.
Generate images that show the number of samples per pixel as pixel intensity, and report minimum and maximum number of samples per pixel.
Source Code
The following source code files are provided to help you with this and upcoming projects. You are not required to use them, but it is highly recommened that you use some of them. Some of these files include additional code as compared to the same files in the previous project, so make sure to download them all again.
scene.h: Includes the new Halton function and modifications to the RenderImage class for storing sample count per pixel.
viewport.cpp: OpenGL based preview and user interface launched by calling the ShowViewport() function based on the GLUT library (the Windows version is here).
You can check out the Halton Sequence Demo page to see what Halton sequences look like with different bases.
Optional Feature Suggestions
Implement reconstruction filtering.
Implement adaptive subdivision for antialiasing.
References
[Dippé and Wold 1985]
Mark A. Z. Dippé and Erling Henry Wold. 1985. Antialiasing through stochastic sampling. In Proceedings of the 12th annual conference on Computer graphics and interactive techniques (SIGGRAPH '85). ACM, New York, NY, USA, 69-78.
[Kajiya 1986]
James T. Kajiya. 1986. The rendering equation. In Proceedings of the 13th annual conference on Computer graphics and interactive techniques (SIGGRAPH '86), David C. Evans and Russell J. Athay (Eds.). ACM, New York, NY, USA, 143-150.
[Painter and Sloan 1989]
J. Painter and K. Sloan. 1989. Antialiased ray tracing by adaptive progressive refinement. In Proceedings of the 16th annual conference on Computer graphics and interactive techniques (SIGGRAPH '89). ACM, New York, NY, USA, 281-288.