15-468, 15-668, 15-868
Physics-based Rendering, Spring 2023
SCS logo
Time: Tuesdays, Thursdays 11:00 am - 12:20 pm ET
Location: Wean Hall 5409
Instructor: Ioannis (Yannis) Gkioulekas
Teaching Assistants: Hanyu Chen, Jeff Tan
Course Description

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 equations, 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, in the form of assignments through 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 course also emphasizes theoretical aspects of physics-based rendering, through weekly take-home quizzes. Lastly, the course 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.

Prerequisites

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.

Textbooks

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:

Evaluation

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. Submissions will be selected for a technical award and an art award, and the two winning students will receive fully-funded trips (registration, travel, lodging) to SIGGRAPH 2023. 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. Details are available in the final project page.

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 five 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 two quizzes without penalty. Students may submit more than eight quizzes for extra credit, e.g., submitting perfect solutions to ten quizzes will contribute to your final grade as 20% standard and 5% extra credit. There are no free late days for quizzes, and any late quiz will receive zero credit.

Collaboration policy: We encourage students 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 must not share or copy code, data, or text from any source. Additionally, you must not use any external code or data unless explicitly permitted. These and any other forms of cheating are strongly prohibited and will result in a failing grade for the entire course (not just the assignment you were caught on). If you have any question about whether some activity would constitute cheating, just be cautious and ask the teaching staff before proceeding. Additionally, you must not supply any code or writeups you complete during this course to other students in future instances of the course, or make this material available (e.g., on the web) for use in future instances of the course. You must make sure any online repositories you use for the course are kept private.

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.

Meetings

Lectures: Lectures will take place in Wean Hall 5409. All lectures will be recorded, and recordings will be available on Canvas after each lecture.

Recitations: The course includes optional weekly recitations on Wednesdays, 3:00 - 5:00 pm ET, taking place in Smith Hall (EDSH) 236 (graphics lounge). During the recitations, we will go over solutions to the take-home quizzes.

Reading group: In addition to regular lectures, the course includes an optional reading group taking place every second Friday, 2:30 - 4:00 pm ET in Smith Hall (EDSH) 236 (graphics lounge). During the reading group, we will go over recent papers and advanced topics selected by the students and instructors.

Email, Office Hours, and Discussion

Email: Please use [15468] in the title when emailing the teaching staff!

Office hours: Teaching staff will have regular office hours at the following times:

All office hours will take place in person in Smith Hall (EDSH) 236 (graphics lounge).

Feel free to email us about scheduling additional office hours. Please do not email the teaching staff with questions about homework or grading. You should post those on Piazza or Slack.

Discussion: We will use Piazza and Slack for course discussion and announcements. Instructions for accessing the course Slack server are available on Piazza.

Interested in research?

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.

(Very Tentative) Syllabus

Slides will be uploaded on this website before each lecture.

DateTopicsSlidesHomework
Tu, Jan 17Introductionpptx, pdf
Th, Jan 19Ray tracing and geometric representationspptx, pdf
Tu, Jan 24Ray tracing and simple shadingpptx, pdfTQ1 out
Th, Jan 26Texture mapping
Fr, Jan 27PA1 out
Tu, Jan 31Procedural texturesTQ1 due, TQ2 out
Th, Feb 2Radiometry
Fr, Feb 3Reading group
Tu, Feb 7Microfacet BRDFsTQ2 due, TQ3 out
Th, Feb 9Monte Carlo integration
Fr, Feb 10PA1 due, PA2 out
Tu, Feb 14Quasi-Monte Carlo samplingTQ3 due, TQ4 out
Th, Feb 16Direct illumination
Fr, Feb 17Reading group
Tu, Feb 21Multiple importance samplingTQ4 due, TQ5 out
Th, Feb 23Rendering equation
Fr, Feb 24PA2 due, PA3 out
Tu, Fen 28Participating mediaTQ5 due, TQ6 out
Th, Mar 2Volumetric path tracing
Fr, Mar 3Reading group
Tu, Mar 7No class (Spring Break)
Th, Mar 9No class (Spring Break)
Tu, Mar 14Path integral formulationTQ6 due, TQ7 out
Th, Mar 16Bidirectional light transport
Fr, Mar 17PA3 due, PA4 out
Tu, Mar 21Photon mappingTQ7 due, TQ8 out
Th, Mar 23Inverse and differentiable rendering
Fr, Mar 24Reading group
Tu, Mar 28Rendering wave effectsTQ8 due, TQ9-10 out
Th, Mar 30Metropolis Light Transport
Fr, Mar 31PA4 due
Tu, Apr 4Neural rendering
Th, Apr 6Advanced topics
Fr, Apr 7Proposal due
Tu, Apr 11Advanced topics
Th, Apr 13No class (Spring Carnival)
Tu, Apr 18Advanced topics
Th, Apr 20Guest lecture
Fr, Apr 21Reading group
Tu, Apr 25Guest lectureTQ9-10 due
Th, Apr 27Wrap up
Previous Course Offerings
Similar Courses Elsewhere
Acknowledgments

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.