Ray Tracer

Chun-Wei Liu

University of Illinois at Urbana-Champaign



Hello World for my first raytracer!

This is a program which can render a graphics scene based on the ``ray tracing algorithm''. The algorithm synthesis an image by tracing the path of light through pixels in the image plane. The technique is capable of producing a very high degree of photorealism, and its main purpose is for production of the film. In this project, I incrementally implement different features into my own raytracer. Finally, we get some wonderful images as follows.


Constructive solid geometry (CSG):
Using Boolean function `union', `intersection' and `subtraction', the ray tracer can creates different shapes of the object.
Depth of field, soft shadow, motion blur and super sampling:
By sampling multiple rays, the ray tracer can deal with several features, and the computational cost raised with requirements.
Bump mapping:
Using the perturbed surface normal, the ray tracer can simulate bumpy surface. I also simulate the Earth pattern by Perlin Noise function.
Perlin Noise:
I further simulated the atmosphere of the Earth, and I designed the texture map for this scene. I intently tune the scene as the Republic of China.
Photon mapping:
With photon map, the ray tracer can illuminate the indirect lighting. Notice the different colors reflected on the ceiling of the Cornell Box, and caustic photons by the crystal ball.
Bezier patch:
The ray tracer can draw model based on Bezier patch. I demonstrate a teapot constructed by Bezier patch in this scene.