project thumbnail
Duration: ±3 weeks
Date: September 2012
Course: Graphics programming 1
Tools used: Jacco Bikker's Template
Visual Studio 2010
Very sleepy

Raytracer

I made this raytracer in the first 3 weeks of the raytracing/graphics course in the second year of IGAD. My goal was to quickly get familiar with raytracing and implement lots of different effects while also focusing on performance even though that was not a requirement. I build an easy extendable material system because I used this raytracer to quickly test different materials. After spending about 3 weeks on this project I started from scratch on my pathtracer project, redesigning the architecture for more speed, and removing the extendable material system.

Features:

  • Extendable material system including
    • Diffuse textured
    • Reflective
    • Refractive
    • Refractive with multisampled chromatic dispersion
  • Soft point lights and sharp point lights.
  • Multisampled Depth of field.
  • Multisampled anti aliasing.
  • Primitives
    • Sphere
    • Infinite plane
    • Quad
    • Triangle
  • Multithreaded rendering
  • ±16fps on i5 laptop for 640x480 resolution (without multisampling, and only one light)

Images

Pathtracer screenshot 1
Refraction on a glass sphere

Pathtracer screenshot 2
Chromatic dispersion

Pathtracer screenshot 3
A reflective sphere seen through a glass sphere. This enhances the chromatic dispersion effect, and produces nice rainbows.

Pathtracer screenshot 4
Deep Depth of field, unfocused.

Pathtracer screenshot 5
Depth of field focused on a glass sphere.

Pathtracer screenshot 6
Depth of field focused through a glass sphere.

Pathtracer screenshot 7
Realtime output, showing off normal mapping. (±16fps on i5 laptop for 640x480 resolution)