(Josh’s Ray Tracer)


JRT was originally the seventh programming project for my undergraduate computer graphics course.  I enjoyed this project so much that I began tweaking and playing with it in my spare time, a process which lasted for several years. 


I have recently written a new renderer from scratch, based on all of the lessons learned from the first one, and the result is a very formidable renderer based on bounding volume hierarchies.  My goal was to make a renderer that was efficient an robust, but which was tailored specifically towards rendering pretty images for my walls.  My pet raytracer supports photon-map based global illumination, geometry instancing, plus all the usual raytracing effects (except motion blur, I only like to render still-lifes).  It is multi-threaded, and the core raytracing code makes heavy use of SSE intrinsics (borrowing heavily from the interactive raytracing literature).  


Although I haven't built a real production renderer (yet), I consider myself to be a gifted amateur when it comes to software rendering, raytracing and global illumination.


Here are some images I've generated:


Not my desk
Some random objects cluttering up a desk.  I'm particularly happy with the way the GI came out in this image, there's some really nice color bleeding on the lamp, the elephant, and the back wall.  The prism is a little disappointing (I need to add some dispersive refraction support).
One Fine Piece of Glass
A heptoroid made out of glass.  This object is a sculpture designed by Brent Collins and Carlo Séquin.  This particular dataset, however, came from here
Lucy in a Cathedral
The 'Lucy' model in grace cathedral.  The environment in this image is a new light probe of grace cathedral which can be found here.
Some teapots under HDR environment lighting.  Inspired by some similar images by Henrik Wann Jensen.


Glass teapot Ceramic teapot Metallic teapot


Glass Menagerie
A variety of glass critters.  There is a point light inside the glass bunny which casts caustics on the walls.  Photon gathering is used for global illumination.  The wood floor uses a procedural texture that I wrote.
IKEA Globes
Caustics from those little glass globes that you can buy at IKEA.  I'm using photon gathering here too.  The scene is lit from above by a spotlight, and there is lots of scattering from the glass balls, so it takes a LOT of samples to remove all the noise.  I am VERY impressed with the performance of the Intel Centrino Duo under such stressful conditions :)
Soft Shadows
Soft shadows from a lattice structure.  This image was inspired by the works of Japanese bamboo sculptors Morigami Jin and Honda Shoryo.
Procedural Tangle
A bit of algorithmic fun.  This is the minimum spanning tree of a set of random points.  The scene is lit by three spherical area lights.
Fun with Instancing
This teapot is made entirely out of Stanford bunnies :)