As in all previous projects, this project will require a writeup hosted on github classroom, and a pdf submitted to Gradescope. The goals of your write-up are for you to (a) think about and articulate what you've built and learned in your own words, (b) have a write-up of the project to take away from the class. Your write-up should include:

  • An overview of the project, your approach to the various parts, what problems you encountered and how you solved them. Strive for clarity and succinctness.
  • For each of the two (or more!) Parts you chose, make sure to include the specific results described at the end of each Part's spec. In addition to these generated images, make sure you include a short but clear summary of your implementation, as well as an explanation for why your images look the way they do, and the comparisons between them. If you failed to generate any results correctly, provide a brief explanation of why. If you do more than 2 parts, please indicate which 2 you'd like for us to grade!
  • Clearly indicate any extra credit items you completed, and provide a good write-up and illustration.
  • At the end, if you worked with a partner, please write a short paragraph together for your final report that describes how you collaborated, how it went, and what you learned.

The writeup is our main method of evaluating your work, so it is important to spend the time to do it correctly. Plan ahead to allocate time for the writeup well before the deadline.

Please do not just copy-paste words from the spec or lecture. Instead, try to connect the high level concepts expressed here with the actual programming you've done!

Here's another link to how to submit assignments for CS184.

Deliverables

Part 1

  • Show a sequence of six images of scene CBspheres.dae rendered with max_ray_depth set to 0, 1, 2, 3, 4, 5, and 100. The other settings should be at least 64 samples per pixel and 4 samples per light.
  • Point out the new multibounce effects that appear in each image.
  • Explain how these bounce numbers relate to the particular effects that appear.

Part 2

  • Show a sequence of 4 images of scene CBdragon_microfacet_au.dae rendered with α\alpha set to 0.005, 0.05, 0.25 and 0.5. The other settings should be at least 128 samples per pixel and 1 samples per light. The number of bounces should be at least 5. Describe the differences between different images. Note that, to change the α\alpha, just open the .dae file and search for microfacet.
  • Show two images of scene CBbunny_microfacet_cu.dae rendered using cosine hemisphere sampling (default) and your importance sampling. The sampling rate should be fixed at 64 samples per pixel and 1 samples per light. The number of bounces should be at least 5. Briefly discuss their difference.
  • Show at least one image with some other conductor material, replacing eta and k. Note that you should look up values for real data rather than modifying them arbitrarily. Tell us what kind of material your parameters correspond to

Part 3

Pick one .exr file to use for all subparts here. Include a converted .jpg of it in your website so we know what map you are using.

  • In a few sentences, explain the ideas behind environment lighting (i.e. why we do it/how it works).
  • Show the probability_debug.png file for the .exr file you are using, generated using the save_probability_debug() helper function after initializing your probability distributions.
  • Use the bunny_unlit.dae scene and your environment map .exr file and render two pictures, one with uniform sampling and one with importance sampling. Use 4 samples per pixel and 64 samples per light in each. Compare noise levels.
  • Use a different image (if you did part 2, we recommend bunny_microfacet_cu_unlit.dae) and your environment map .exr file and render two pictures, one with uniform sampling and one with importance sampling. Use 4 samples per pixel and 64 samples per light in each. Compare noise levels.

Part 4

For these subparts, we recommend using a microfacet BSDF scene to show off the cool out of focus effects you can get with depth of field!

  • In a few sentences, explain the differences between a pinhole camera model and a thin-lens camera model.
  • Show a "focus stack" where you focus at 4 visibly different depths through a scene.
  • Show a sequence of 4 pictures with visibly different aperture sizes, all focused at the same point in a scene.