Ray Tracing Part 2 - Monte Carlo Path Tracing

Overview

In this assignment you will extend the Whitted ray tracer you wrote in the previous assignment to a Monte Carlo Path Tracer. You will continue to code in the rt framework as before.

rt can be downloaded from its repository at https://github.com/paragchaudhuri/rt

Preparation

  1. Finish you implementation of the Whitted Ray Tracer if you have not done so.
  2. Documentation for rt can be generated by running Doxygen on the code.

To Do : Monte Carlo Path Tracing

  1. Extend the image class to return multiple samples per pixel. The number of samples must be read from the scene file and must be a part of the image description. Aggregate radiance estimates for each of these samples appropriately to assign the pixel color.
  2. Add a class to represent area lights. Add a function in this class to return multiple samples on the surface of the area light to calculate soft shadows.
  3. Sample appropriate BRDF’s for diffuse reflections, and specular reflections and refractions.
  4. Re-create the Cornell room scene from smallpt ray tracer. Name this scene file cornellscene2.xml and put it in the scenes folder of rt. You should see colour bleeding, caustics, soft shadows, reflections and refractions.
  5. Render it.
  6. Write a pdf report explaining what you added to rt to implement the above mentioned features. Name this report file report.pdf. Make sure you include the names of all members of your group in the report. Put the report in the doc folder in the rt source tree.
  7. Bonus 1: Add a space subdivision acceleration structure like bounding boxes or octrees to accelerate the ray tracing.
  8. Bonus 2: Make 2 more complex scenes with elements other than spheres that demostrate global illumination phenomena.

Marking

  1. Correct multi sampling on the image: 50 marks
  2. Correct area lights and soft shadows: 50 marks
  3. Correct diffuse BRDF sampling: 50 marks
  4. Correct specular BRDF sampling: 50 marks
  5. Bonus 1: 40 marks (Applies only when entire normal assignment is complete)
  6. Bonus 2: 50 marks (Applies only when entire normal assignment is complete)
  7. PDF report included with submission: 10 marks
  8. Total: 210 + 40 + 50 marks
  9. Deductions: Inconsistently written code (follow style used in rt) : 10 marks
  10. Deductions: Submitting an unclean archive : 20 marks.

Important Note

Please do not put your solution code and report anywhere public. It should not be available online.

To Submit

Submissions will be handled via Github Classroom.

Previous