Time and location: TR 11:10 - 12:25 pm in ZACH 590
Office hours: TR 3:00 - 4:00 pm
Office location: 406 PETR
Email: nimak@tamu.edu
Campuswire: link on Canvas
This course provides an in-depth introduction to physically based rendering, with an emphasis on Monte Carlo techniques. We will study how light interacts with objects in the real world, how image formation is mathematically formulated, and how these formulations are solved in practice using modern rendering algorithms. The course focuses on the theoretical foundations of rendering as well as their application in practical image synthesis systems.
The students are expected to be familiar with C++, as this is the language used for all the programming assignments and the final project. Familiarity with calculus and linear algebra is recommended, as these tools are used throughout the course; however, the necessary concepts will be reviewed as needed. Having basic knowledge of computer graphics (the undergraduate computer graphics course, CSCE 441) is also recommended.
The following books are recommended but not mandatory:
Physically Based Rendering: From Theory to Implementation (4th edition) by Matt Pharr, Wenzel Jakob, and Greg Humphreys
Robust Monte Carlo Methods For Light Transport Simulation by Eric Veach
You will lose 20% from each assignment for each day that it is late. However, there will be 5 granted late days for the entire course. You are free to use it for any of the assignments (note that, you CANNOT use it for the final project!). You will not get any bonuses for any of the unused late days. All the assignments are due at 11:59 pm on Canvas unless otherwise stated. Note that, one minute over and 23 hours over both count as one full day.
The assignments in this class are individual unless otherwise stated. For the individual assignments, all code must be written by the student. If specified in the assignment instructions, the use of external libraries for performing basic operations is allowed. However, using any external source code is NOT permitted. Collaborating with other students beyond general discussion is also NOT allowed. In particular, viewing other students’ code and/or written answers is strictly prohibited. Posting your code on publicly accessible websites (e.g., GitHub), even after the assignment deadline, is also NOT allowed.
Generative AI: The use of large language models such as ChatGPT, Copilot, or Claude is not strictly prohibited. However, these tools may be used only for debugging or clarification purposes, not for generating code. You are expected to write all code yourself, and copying or modifying AI-generated code is not permitted. If you use any AI tool in any capacity while completing an assignment, even to ask a conceptual question, you must submit a transcript of the full interaction along with your work.
The instructor may request a meeting with any student to discuss their code and assess their understanding. If a student is unable to adequately explain their own code, it will be considered an honor code violation and reported to the honor council.
If you have any questions about these policies, please contact the instructor.
| Date | Topic | Slides | Reading | Assignments |
|---|---|---|---|---|
| Jan 13 | Introduction and Math Review | PBR Ch. 3 | ||
| Jan 15 | Introduction and Math Review | See Above | PBR Ch. 3 | |
| Jan 20 | Ray Tracing | RTOW | ||
| Jan 22 | Ray Tracing | RTOW | ||
| Jan 27 | Acceleration | PBR Ch. 6 & 7 | ||
| Jan 29 | Ray Tracing - Shading | RTOW | ||
| Feb 3 | Ray Tracing - Shading | RTOW | ||
| Feb 5 | Radiometry | |||
| Feb 10 | Reflection Equation | |||
| Feb 12 | Monte Carlo Integration | |||
| Feb 17 | Sampling | |||
| Feb 19 | Sampling | |||
| Feb 24 | Importance Sampling | |||
| Feb 26 | Direct Lighting | |||
| Mar 3 | Direct Lighting | |||
| Mar 5 | Spring Break -- No Class | |||
| Mar 10 | Spring Break -- No Class | |||
| Mar 12 | Multiple Importance Sampling | |||
| Mar 17 | Rendering Equation | |||
| Mar 19 | Rendering Equation | |||
| Mar 24 | Microfacet Models | |||
| Mar 26 | Texture Mapping I | |||
| Mar 31 | Texture Mapping II | |||
| Apr 2 | Procedural Texturing | |||
| Apr 7 | Volume Rendering | |||
| Apr 9 | Volume Rendering | |||
| Apr 14 | Volume Rendering | |||
| Apr 16 | Volume Rendering | |||
| Apr 21 | Bidirectional Path Tracing | |||
| Apr 23 | ||||
| Apr 28 | Redefined Day -- No Class |
*Schedule might change during the semester.
The slides in this class are heavily based on the slides from other instructors. Specifically, many slides are the exact or modified version of the slides by Wojciech Jarosz, who in turn provides extensive acknowledgements and credits to other instructors and collaborators (see his full credits here). Some ideas, images, or slides, are also adapted/borrowed from Steve Marschner, Ravi Ramamoorthi, Tzu-Mao Li, and John Keyser.