Java Raytracer

In the first year of my masters at Leuven uni, I followed a unit on Computer Graphics. This unit was partially graded on the design and implementation of our own Ray Tracer. I had a lot of fun working on this. The resulting ray tracer was not very sophisticated compared to modern renderers, but making it was an incredibly valuable experience in terms of understanding the fundamentals. The downside was that the programming had to be in Java, but apart from that, the result is quite good for a project worth less than 4 ECTS credits:

The main features of the final version were:

  • A custom XML format, and the ability to read in OBJ files.
  • Diffuse and specular shading
  • 2D and 3D texturing
  • Stochastic tracing (Soft shadows, Anti-Aliasing, DoF)
  • Bump Mapping
  • Environment mapping
  • Recursive tracing (reflection, refraction)
  • Optimization using several types of Acceleration Structures
  • (Very minimal) support for making animations

I actually spent time going into a lot of detail (considering both effects and acceleration structures) of this project on a blog I kept for a while. The blog posts can be found here. It might be more fun to look at the pretty pictures I made with it, which you can find in this Picasa album.


© 2020. All rights reserved.