Nori 2 is a minimalistic ray tracer written in C++. It runs on Windows, Linux, and Mac OS and provides a foundation for the homework assignments in the course Computer Graphics taught at ETH Zürich.
While Nori provides much support code to simplify your development work as much as possible, the code that you will initially receive from us does very little: it loads a scene and saves a rendered image as an OpenEXR image—but the actual rendering code is missing, hence the output image just consists of black pixels. Your task will be to extend this system to a full-fledged physically-based renderer as part of programming assignments and your final project.
Feel free to consult additional references when completing projects, but remember cite them in your writeup.
When asked to implement feature \(X\), we request that you don't go and read the source code of the implementation of \(X\) in some other renderer, because you will likely not learn much in the process. The PBRT book is excluded from this rule. If in doubt, get in touch with the course staff.
You may find the following general references useful:
The assignments have to be solved and submitted individually. The final project will be done in groups. More information about the final project and the rendering competition will come later in the semester. The deadlines are specified for each assignment. These are the dates to submit your exercises (code and report). The gradings are done until one week later to give us time to look at your reports. To get graded you need to submit on time.
The goal of these exercises is to help you create the foundation of a good renderer for subsequent assignments and the final projects. It is your job to convince us that you have implemented the assignments correctly, through the information provided in your reports and the quality/readability of your code. We will deduct points for poorly written code or inconclusive comparisons/validations in your report. Make sure to start working on the homework as early as possible. Building your own advanced renderer is a lot of fun. Use this great opportunity, and don’t forget to have fun!
We will be using Dropbox File requests to gather your submissions. Every time there is something to submit, we provide you with a link. To submit it's very simple. Click on the link, choose the file to upload, and validate.
Only the teaching assistants have access to what you submit.
Submitted files cannot be deleted. However, resubmitting a new version if you made a mistake is allowed. Dropbox will automatically rename the file to avoid name conflicts. So we will have access to all the files. But we kindly ask you to not abuse this possibility.
Each submission comes with a deadline. After this, the students will receive 0 for the corresponding part.