A collection of historical progress renders generated through the life of development of my Imagine raytracing renderer.

Analytic Shapes

February, 2011
Basic support for intersecting against hard-coded analytic shapes for spheres and cubes. Lighting was direct illumination from point lights with shadows.

Analytic Shapes

March, 2011
Basic support for intersecting against hard-coded analytic shapes for spheres and cubes. Lighting was point lights with shadows with Whitted raytracing for reflection.

Scene KDTree

April, 2011
Added scene-level KDTree (on top of shape-level for polymeshes), providing much faster ray intersection of multiple objects.

Bucketed rendering

May, 2011
Converted to use bucketed (tiled) rendering, instead of previous scanline approach, which improved interactivity a bit. Also added initial support for procedural textures (checkerboard).

Ambient Occlusion

June, 2011
Initial (and slightly broken: occlusion ray distribution was wrong/uneven, which can be clearly seen in the render with bands of occlusion rather than the expected falloff with distance) Ambient Occlusion support.


December, 2011
Full support for geometry and object (compound) instancing, with trivial ref-counting/COW duplication in the UI.


December, 2011
Full uni-directional pathtracing light transport integration, also with DOF via camera circle-of-confusion sampling.

Better BSDFs

April, 2012
Better, more physically-correct BSDFs for materials, along with initial Environment (IBL) light support (but without importance sampling at this point).


May, 2012
Further tweaks to BSDFs, adding basic fixed-function layered materials under either clearcoat or microfacet lobe. Model is Stanford Dragon.

Material Tests

July, 2012
Added plausible material presets for different metals (not totally accurate at this point) with conductor BSDFs, and other tweaks to other BSDFs and presets. Models are Stanford Dragon and Headus Killeroo (http://www.headus.com.au/).

Oren Nayar BSDF

May, 2013
Fixed (code had existed for years, but was wrong beforehand) Oren Nayar rough diffuse model, allowing better representation of rough diffuse surfaces which are more 'realistic' than standard Lambertian models.

Improved heterogeneous volume scattering support

April, 2014
Added support for multiple scattering (although this render was still quite limited for cloud scattering, and the IBL luminance was clamped, as MIS hadn't been implemented yet), and sparse voxel grid support, allowing much better memory efficiency for large voxel sims.

Katana DCC integration

May, 2014
Integration of Imagine into the Katana DCC as a Renderer plugin, allowing side-by-side comparison with Arnold and PRMan on production scenes with the same input geometry / layouts.