This week’s project topics are:

 

  • Accelerating our basic ray tracer with multi-threading and Boundary Volume Hierarchy(BVH) tree implementation,
  • Multi Sampling Anti Aliasing
  • Refraction (Glassy objects)

Source code is available on GitHub.

Triangle counts: 4978
Time elapsed to read the scene data: 0.010376 seconds / 10376 microseconds.
Time elapsed to render the scene:

  • On a single thread: 13.6424 seconds / 13642433 microseconds.
  • 4 threads: 4.41703 seconds / 4417026 microseconds.
  • 8 threads: 3.75496 seconds / 3754958 microseconds.
  • 8 threads + BVH: 0.074933 seconds / 86461 microseconds.

  • Triangle counts: 11102
    Time elapsed to read the scene data: 0.015283 seconds / 15283 microseconds.
    Time elapsed to render the scene:
  • On a single thread: 229.948 seconds / 229948021 microseconds.
  • 4 threads: 115.365 seconds / 115364966 microseconds.
  • 8 threads: 61.3219 seconds / 61321890 microseconds.
  • 8 threads + BVH: 0.374457 seconds / 374457 microseconds.

Triangle counts: 871414
Time elapsed to read the scene data: 0.015283 seconds / 15283 microseconds.
Time elapsed to render the scene:

  • 8 threads: ~1 hour
  • 8 threads + BVH: 0.466252 seconds

Multi Sampling Anti Aliasing

Multi Sampling Anti Aliasing implementation with Gaussian Distribution is added to the project.

1, 4, 25 and 100 samples: 0.074933, 0.306833, 1.44862 and 5.42911 seconds respectively.

100 samples: 28.6247 seconds.

Transparency / Refraction

There is still some work to be done but the renders of the transparent objects are: