This image was generated using SSRT, a simple Monte-carlo path-tracer
that I wrote. My reason for writing it, is to provide a minimalist
piece of source code (in line with what you will see on
codesampler.com) for a path-tracer, in order to enhance the
general understanding of the algorithms involved.
In the image you will noticed that the sphere is perfectly specular.
The wall at the back shows imperfect specular/glossy reflection. On the
(white) roof and floor you will notice color bleeding from the left and
right walls. Accurate soft shadows are generated by the area light
Some features that are supported by SSRT:
Global diffuse illumination
Perfect and imperfect global specular illumination
Phong BRDF based importance sampling and cosine sampling
Stratified sampling is used for sampling the diffuse part of the BRDF
Arbitrary area light sources
Support for triangle based primitives
Smooth or faceted objects
Bounding box checks for ray acceleration
An easy to use camera model
A limited implementation of refraction
The code base is very small, and external libraries are minimal - Win32
is used for the front-end of the Windows version, and a GTK front-end
for the Linux (or anything I suppose) version.
The source code, executable and more pictures are freely available at:
This is not my area of expertise, so any comments about
misunderstandings in the implementation would be welcome.
- Shaun Nirenstein