This course covers fundamental and advanced concepts of modern computer graphics. Students will learn the fundamentals of digital scene representations, advanced physically-based light transport algorithms for generating photorealistic images from these scene representations, and inverse rendering methods for recovering digital scene representations from captured images.
Learning objective
At the end of the course, the students will be able to build a rendering system based on path-tracing algorithms. The students will learn the principles of physically-based rendering and computer graphics. In addition, the course is intended to stimulate the student's curiosity to explore the field of computer graphics in subsequent classes or on their own.
Content
We will begin with an introduction to light emission and radiometric quantities, followed by an exploration of geometry representations and texture mapping. Next, we will mathematically formulate the physics of light transport and appearance modeling. Subsequently, we will introduce relevant concepts from Monte Carlo integration and develop path-tracing algorithms to solve these equations by simulating light transport for direct and global illumination due to hard surfaces and participating media, such as fog, smoke, and translucent objects. Moreover, we will present techniques for significantly improving path-tracing efficiency, including importance sampling, multiple importance sampling, stratified sampling, denoising, and acceleration data structures. The course lectures will conclude with an overview of image-based capture and rendering methods. Topics covered will include geometry reconstruction, material acquisition, differentiable rendering, and image-based rendering.
Lecture notes
no
Literature
Books: Physically Based Rendering: From Theory to Implementation High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting Multiple view geometry in Computer Vision
Prerequisites / Notice
Prerequisites: Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, programming skills in C++, and the Visual Computing course are recommended. The programming assignments will be in C++. This will not be taught in the class.