ShirleyTracer

Project Details

A brute force pathtraced renderer programmed referencing the Ray Tracing in One Weekend series by Peter Shirley, Trevor David Black, and Steve Hollasch.

Final render from Book 3

Final render from Book 3 of Ray Tracing in One Weekend.

This was my first go at anything related to offline rendering after spending most of my time learning and implementing rasterization related techniques in OpenGL. I inadvertently ended up preemptively improving certain features, which was pleasant.

Final render from Book 1

Final render from Book 1 of Ray Tracing in One Weekend.

The first book, and the first half of the second book were intuitive, but the difficulty scaled ridiculously as I began the third due to my utter lack of related prerequisites. This itself took me nearly two months to complete.

Features

  • Monte Carlo Pathtracing.
  • Developed from scratch with C++.
  • Per pixel multi-sampled anti-aliasing.
  • Gamma correction.
  • Positionable camera with defocus blur.
  • Lambertian, metallic, and dielectric materials.
  • Motion blur.
  • Axis-aligned Bounding Boxes (AABB) BVH.
  • Solid color, image, and noise textures.
  • Perlin noise with trilinear interpolation and Hermitian smoothing.
  • Emissive lights.
  • Primitives: quads, spheres.
  • Volumes.
  • Importance Sampling
  • Mixed PDFs.

Third Party Libraries