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.
Also, please feel free to use this writeup template!
Deliverables
Part 1
- Show a sequence of six images of scene
CBspheres.dae
rendered withmax_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. Make sure to include all screenshots. - Point out the new multibounce effects that appear in each image.
- Explain how these bounce numbers relate to the particular effects that appear. Make sure to include all screenshots.
Part 2
- Show a screenshot sequence of 4 images of scene
CBdragon_microfacet_au.dae
rendered with 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 , just open the .dae file and search formicrofacet
. - 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
andk
. 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. Make sure to include all screenshots. - 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. Make sure to include all screenshots.
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. Make sure to include all screenshots.
- Show a sequence of 4 pictures with visibly different aperture sizes, all focused at the same point in a scene. Make sure to include all screenshots.