15-468, 15-668, 15-868 Physics-based Rendering, Spring 2021 |
![]() |
Time: | Tuesdays, Thursdays 10:40 am - noon ET |
Location: | Posner Hall 152 and online (see Canvas for Zoom links) |
Instructor: | Ioannis (Yannis) Gkioulekas |
Teaching Assistant: | Bailey Miller |
This course is an introduction to physics-based rendering at the advanced undergraduate and introductory graduate level. During the course, we will cover fundamentals of light transport, including topics such as the rendering and radiative transfer equation, light transport operators, path integral formulations, and approximations such as diffusion and single scattering. Additionally, we will discuss state-of-the-art models for illumination, surface and volumetric scattering, and sensors. Finally, we will use these theoretical foundations to develop Monte Carlo algorithms and sampling techniques for efficiently simulating physically-accurate images. Towards the end of the course, we will look at advanced topics such as rendering wave optics, neural rendering, and differentiable rendering.
The course has a strong programming component, during which students will develop their own working implementation of a physics-based renderer, including support for a variety of rendering algorithms, materials, illumination sources, and sensors. The project also includes a final project, during which students will select and implement some advanced rendering technique, and use their implementation to produce an image that is both technically and artistically compelling. The course will conclude with a rendering competition, where students submit their rendered images to win prizes.
Cross-listing: This is both an advanced undergraduate and introductory graduate course, and it is cross-listed as 15-468 (for undergraduate students), 15-668 (for Master's students), and 15-868 (for PhD students). Please make sure to register for the section of the class that matches your current enrollment status.
This course requires familiarity with linear algebra, calculus, programming, data structures, algorithms, and doing computations with images. In particular, either of the following courses can serve as proof that you satisfy these prerequisites:
If you want to enroll but have not taken any of the above courses, please make sure to contact the instructor! We make a lot of exceptions each year, on a case-by-case basis.
Readings will be assigned primarily from the following textbooks, which can also be useful references in general. All of them are available online from the CMU library:
Lectures will take place in hybrid mode, in person and also broadcast on Zoom. See the course's Canvas page for Zoom meeting links. Recordings of the lectures will be made available on Canvas after each lecture.
Your final grade will be made up of:
Programming assignments: The series of programming assignments (PAs) involves starting from a very basic ray tracing framework, and using it to implement increasingly more sophisticated rendering capabilities. Programming will be done in C++.
Take-home quizzes: Take-home quizzes (TQs) will each require solving two-three theory questions related to the corresponding week's two lectures. Answers will need to be typed in LaTeX.
Final project and rendering competition: Towards the end of the semester, each student will work on a project of their own choosing. The purpose of the project is to enhance your renderer with advanced features, and use it to generate images that are both physically accurate and artistically compelling. Each student will submit an image they produce for consideration in an end-of-semester competition, judged by other faculty and graduate students at CMU. The student with the selected entry will win a free registration for SIGGRAPH 2021. Note that you will also receive a separate grade, independently of the results of the competition. Note also that final project presentations will be scheduled during the final exam period.
Submitting homework and deadlines: We will use Canvas for submitting and grading homeworks.
Late days: For the programming assignments, students will be allowed a total of six free late days. Any additional late days will each incur a 10% penalty. Additionally, no programming assignment may be submitted more than three days after its due date. Please note that submission deadlines will be enforced strictly for the purposes of counting late days. In particular, no exceptions will be made for reasons such as upload delays, submitting incorrect files, and so on.
Missed quizzes: For the take-home quizzes, students will be allowed to completely skip a total of three quizzes without penalty. For students that submit more than seven quizzes, only the best seven will be counted towards their grade. There are no free late days for quizzes, and any late quiz will receive zero credit.
Collaboration policy: Students are encouraged to work in groups but each student must submit their own work. This includes: writing your own code, rendering your own scenes, coming up with your own math solutions, and producing your own writeup. If you work as a group, include the names of your collaborators in your writeup. You absolutely should not share or copy code. Additionally, you should not use any external code unless explicitly permitted. Plagiarism is strongly prohibited and will lead to failure of this course.
15-668, 15-868: Students taking 15-668 or 15-868 will be required to do a more substantial final project, as well as submit a longer paper describing their project.
Piazza: We will use Piazza for course discussion and announcements.
Slack: In addition to Piazza, we will use a Slack server for more direct discussion about all matters relating to the course, and rendering in general. Please see the Piazza page for details on how to join the Slack server.
Email: Please use [15468] in the title when emailing the teaching staff!
Office hours: Teaching staff will have regular office hours throughout the semester. The exact times will be announced later in the semester.
All office hours will take place on Zoom. See the course's Canvas page for Zoom meeting links.
Feel free to email us about scheduling additional office hours.
We are actively looking for students at all levels (undergraduates, MS, PhD) to help in projects on various aspects of rendering, computational photography, imaging, and graphics in general. If you are interested, please send Yannis an email (or talk to him in person in class).
You should also take a look at the graphics lab and imaging group websites, to find more information about related projects here at CMU.
Finally, you are welcome to attend the weekly graphics lab meetings during the semester. If you want to receive announcements about the meetings, as well as other emails regarding rendering and graphics, please ask Yannis to add you to the graphics lab's mailing list.
Slides will be uploaded on this website before each lecture.
Date | Topics | Slides | Homework |
---|---|---|---|
Tu, Feb 2 | Introduction | pptx, pdf | |
Th, Feb 4 | Ray tracing and geometric representations | pptx, pdf | |
Tu, Feb 9 | Ray tracing and simple shading | pptx, pdf | TQ1 out |
Th, Feb 11 | More shading | pptx, pdf | |
Fr, Feb 12 | PA1 out | ||
Tu, Feb 16 | Texture mapping | pptx, pdf | TQ1 due, TQ2 out |
Th, Feb 18 | Fermat's principle (notes) | ||
Tu, Feb 23 | No class (Break Day) | TQ2 due | |
Th, Feb 25 | Procedural textures | pptx, pdf | |
Fr, Feb 26 | PA1 due, PA2 out | ||
Tu, Mar 2 | Radiometry | pptx, pdf | TQ3 out |
Th, Mar 4 | Monte Carlo integration | pptx, pdf | |
Tu, Mar 9 | Direct illumination | TQ3 due, TQ4 out | |
Th, Mar 11 | Multiple importance sampling | ||
Fr, Mar 12 | PA2 due, PA3 out | ||
Tu, Mar 16 | Global illumination and the rendering equation | TQ4 due, TQ5 out | |
Th, Mar 18 | Microfacet reflectance | ||
Tu, Mar 23 | Bidirectional light transport | TQ5 due, TQ6 out | |
Th, Mar 25 | Photon mapping | ||
Fr, Mar 26 | PA3 due, PA4 out | ||
Tu, Mar 30 | Participating media | TQ6 due, TQ7 out | |
Th, Apr 1 | Radiative transfer equation | ||
Tu, Apr 6 | Diffusion techniques | TQ7 due, TQ8 out | |
Th, Apr 8 | Modeling scattering materials | ||
Fr, Apr 9 | PA4 due | ||
Tu, Apr 13 | Quasi-Monte Carlo sampling | TQ8 due, TQ9 out | |
Th, Apr 15 | No class (Carnival) | ||
Tu, Apr 20 | Markov chain Monte Carlo techniques | TQ9 due, TQ10 out | |
Th, Apr 22 | Differentiable and inverse rendering | ||
Tu, Apr 27 | Neural rendering | TQ10 due | |
Th, Apr 29 | Rendering coherent effects | ||
Tu, May 4 | Eikonal rendering | ||
Th, May 6 | Wrap up |
The materials for this course have been pieced together from many different people and places. The instructor is particularly indebted to Wojciech Jarosz and Wenzel Jakob, who generously provided the materials of their courses at Dartmouth and EPFL, respectively. These materials formed the basis for the first offering of this course. Special thanks to the following colleagues for sharing their course materials or making them available online (in alphabetical order): Steven Gortler, Pat Hanrahan, Steve Marschner, Srinivasa Narasimhan, Matt Pharr, Matthew O'Toole, Ravi Ramamoorthi, Todd Zickler. Individual slides and homework assignments include their own credits.