In September of 2010, on the heels of having been working on a hobbyist 2.5D voxel ray caster for some years, I set out to write my first ray-tracing renderer.
Although this renderer started life as a pure ray tracer, it quickly morphed into a path tracer, and served for the next several years as my hobbyist testbed in offline rendering. It would accumulate features like subsurface scattering, spectral refraction, photon mapping, and volumetric rendering.
A rendering made in 2011
The rest of this post provides a collection of screenshots chronicling the renderer's coming together, from its first images in mid-2010 to some of its last renderings in 2014.
The images shown here often contain placeholder art and/or arrangements. They're intended to convey aspects of the renderer rather than works of art.
The first proof-of-concept ray-traced image, with a few colorful spheres and a wonky perspective
A relatively more advanced ray-traced image with anti-aliasing, a light source, a reflective sphere, and a Lambertian sphere shadowed by the reflective sphere and lit with Phong shading by the light source
The first path-traced image, with characteristic soft shadows and noisy presentation. The walls are made of very large spheres.
Color bleed and the first triangle
Depth of field and textured spheres
Heavy bump mapping
First attempt at implementing the Preetham sky model
First more or less working Preetham sky
Reflective refraction with reddish attenuation
Glass-coated diffuse spheres
Subsurface scattering (waxy sphere)
First rendering of a 3D mesh (Blender's Suzanne)
Translucent Ajax bust
Glass with photon-mapped caustics
First rendering of Sponza (cooked overnight)
Various materials on a car mesh. There are some render issues though, for example the headlight being black.
Early stages of volumetric cloud rendering
Testing volumetric snow rendering
Volumetric lightmap showing spectral diffraction in a ray of light passing through a prism
Volumetric cloud rendering with photon-mapped sunlight
Looking up at a cloud