Path Tracing
A few of us at work have been having a friendly path-tracing competition (greets to Tom & Dom). It's been a lot of fun and comparing images in the office each Monday morning is a great motivation to get features in and renders out. I thought I'd write a post about it to record my progress and gather links to some reference material.
Here's a list of features I've implemented so far and some pics below:
- Monte-Carlo path tracing with explicit area light sampling at each step
- Stratified image sampling
- Importance sampled Lambert and Blinn BRDFs
- Sphere, Plane, Disc, Metaball and Distance Field primitives (no triangles yet)
- Multi-threaded tile renderer
- Cross-compiles for PS3 on Linux (runs on SPUs)
- Quite general shade-trees with Perlin noise etc
- Sphere tracing: a geometric method for the antialiased ray tracing of implicit surfaces
- A Lipschitz Method for Accelerated Volume Rendering
And for global illumination and path-tracing in general: