3D Ray Tracing Renderer
Written in C for the computer graphics class in my master's degree program at the University of
Minnesota, Twin Cities.
Source Code
Features
- Sphere, ellipsoid, and triangle equations
- Parallel and perspective projections
- Lighting and illumination
- Hard and soft shadows
- Depth cueing
- Light source attenuation
- Smooth shading with vertex normals
- Flat shading with plane normals
- Color based textures
- Surface normal texture mapping
- Specular reflections
- Transparency and refraction
- Visibility attenuation through transparent materials
- Bounding volume hierarchies
Showcase
Testing
I used a set of example input files to generate rendered images which form a representative set of features. This full
end-to-end strategy means that rather than running automated unit testing, I simply look at the pictures generated by
my script. I can tell at a glance if something is wrong, and can easily debug the picture by downscaling the resolution
to regenerate and iterate quickly. The full testing/ directory contains all the tests, with the input
files under the testing/tests/ directory and the expected output pictures under
the testing/output-files directory.
testing/