CS-440: Ad­vanced Com­puter Graph­ics (Spring 2024)

Tuesday: 16:15-18:00
Discussion (CM1111-12):
Thursday: 15:15-17:00
Wenzel Jakob
Ziyi Zhang
Teaching Assistant
Ekrem Yilmazer
Teaching Assistant
Benjamin Chislett
Teaching Assistant

General information

News: The com­pet­i­tion res­ults are avail­able here
(see also the 2023, 2022, 2021, 2020, 20192018, and 2017 res­ults).

Sum­mary: This course cov­ers ad­vanced 3D graph­ics tech­niques for real­ist­ic im­age syn­thes­is. Stu­dents will learn how light in­ter­acts with ob­jects in our world, and how to re­cre­ate these phe­nom­ena in a com­puter sim­u­la­tion to cre­ate syn­thet­ic im­ages that are in­dis­tin­guish­able from pho­to­graphs.

Con­tents: This is a pro­ject-based course: stu­dents will ini­tially re­ceive a ba­sic soft­ware pack­age that lacks most ren­der­ing-re­lated func­tion­al­ity. 

Over the course of the semester, we will dis­cuss a vari­ety of con­cepts and tools in­clud­ing the ba­sic phys­ic­al quant­it­ies, how light in­ter­acts with sur­faces, and how to solve the res­ult­ing math­em­at­ic­al prob­lem nu­mer­ic­ally to cre­ate real­ist­ic im­ages. Ad­vanced top­ics in­clude par­ti­cip­at­ing me­dia, ma­ter­i­al mod­els for sub-sur­face light trans­port, and Markov Chain Monte Carlo Meth­ods. 

Each ma­jor top­ic is ac­com­pan­ied by an as­sign­ment so that stu­dents can im­ple­ment solu­tion al­gorithms and ob­tain prac­tic­al ex­per­i­ence with these tech­niques with­in their own soft­ware frame­work. 

To­wards the end of the course, stu­dents will real­ize a self-dir­ec­ted fi­nal pro­ject that ex­tends their ren­der­ing soft­ware with ad­di­tion­al fea­tures of their own choos­ing. The ob­ject­ive of the fi­nal pro­ject is to cre­ate a single im­age of both tech­nic­al and artist­ic mer­it that is entered in­to a ren­der­ing com­pet­i­tion and judged by an in­de­pend­ent pan­el of com­puter graph­ics ex­perts.

Pre­requis­ites: It is re­com­men­ded (but not re­quired) to have taken In­tro­duc­tion to Com­puter Graph­ics or an equi­val­ent course.

We will rely on cal­cu­lus, lin­ear al­gebra and use ba­sic con­cepts of al­gorithms and data struc­tures. Stu­dents are ex­pec­ted to be fa­mil­i­ar with the C++ pro­gram­ming lan­guage that is used in the pro­gram­ming as­sign­ments. 

Learn­ing Out­comes: By the end of the course, the stu­dent must be able to:

  • Re­cog­nize and un­der­stand the phys­ic­al quant­it­ies of light trans­port and be able to per­form ba­sic com­pu­ta­tions us­ing pen­cil+pa­per
  • Ex­plain a range of sur­face and sub­sur­face ma­ter­i­al mod­els
  • Ex­plain the ren­der­ing and ra­di­at­ive trans­fer equa­tion and show how to con­struct Monte Carlo meth­ods to solve them
  • Design and im­ple­ment an ad­vanced ren­der­ing sys­tem based on Monte Carlo in­teg­ra­tion
  • As­sess / Eval­u­ate the per­form­ance and con­cep­tu­al lim­its of the im­ple­men­ted sim­u­la­tion code

Teach­ing meth­ods: Lec­tures, in­ter­act­ive demos, the­ory and pro­gram­ming ex­er­cises, pro­gram­ming pro­ject, pro­ject tu­tor­ing

Ex­pec­ted stu­dent activ­it­ies: The stu­dent are ex­pec­ted to study the provided read­ing ma­ter­i­al and act­ively par­ti­cip­ate in class. They should pre­pare and re­solve the ex­er­cises, pre­pare and carry out the pro­gram­ming pro­ject.

As­sess­ment meth­ods: In­ter­me­di­ate as­sign­ments (40%), fi­nal pro­ject (60%)

Bib­li­o­graphy/Notes: Slides and on­line re­sources will be provided at the end of each class.

The course text­book is Phys­ic­ally Based Ren­der­ing: From The­ory to Im­ple­ment­a­tion (4rd edi­tion) by Matt Pharr, Wen­zel Jakob, and Greg Humphreys. You can ac­cess a free on­line edi­tion of the book by fol­low­ing this link.

Con­tact: Please use either the dis­cus­sion for­ums or the mail­ing list to con­tact the course staff. Make sure not to post sens­it­ive ma­ter­i­al (e.g. solu­tions) pub­lic — the mail­ing list is pre­ferred in this case.

Ren­der­ing com­pet­i­tion: Dur­ing the last part of the course, you will real­ize a pro­ject of your own choos­ing to cre­ate an im­age of both tech­nic­al and artist­ic mer­it. An in­de­pend­ent jury of com­puter graph­ics ex­perts will choose a win­ning entry. Note: You will also re­ceive a grade for your fi­nal pro­ject, which is as­signed by the course staff in­de­pend­ently of the com­pet­i­tion res­ult. In prac­tice, amaz­ing work tends to do well with re­spect to both cri­ter­ia, so a cer­tain amount of cor­rel­a­tion is likely.


Date Lecturer Contents
20.02.2024 Wenzel Jakob

Open­ing Lec­ture: Ad­min­is­trat­ive de­tails, the big pic­ture

27.02.2024 Wenzel Jakob

Lec­ture: Geo­met­ric rep­res­ent­a­tion and ray tra­cing

05.03.2024 Wenzel Jakob

Lec­ture: Monte Carlo meth­ods & Monte Carlo ray tra­cing

12.03.2024 Wenzel Jakob

Lec­ture: The phys­ics of light

19.03.2024 Wenzel Jakob

Lec­ture: Re­flect­ance Mod­els

26.03.2024 Wenzel Jakob

Lec­ture: Dir­ect & Glob­al Il­lu­min­a­tion

02.04.2024 Wenzel Jakob

East­er va­ca­tion – no class.

09.04.2024 Wenzel Jakob

Lec­ture: Mi­cro­fa­cet re­flec­tion mod­els

16.04.2024 Wenzel Jakob

Lec­ture: Bi­d­irec­tion­al ren­der­ing al­gorithms

23.04.2024 Wenzel Jakob

Lec­ture: Ad­vanced re­flec­tion mod­els

30.04.2024 Wenzel Jakob

Lec­ture: Par­ti­cip­at­ing Me­dia (1)

07.05.2024 Wenzel Jakob

Lec­ture: Quasi Monte-Carlo Meth­ods and De­nois­ing.

14.05.2024 Wenzel Jakob

Lec­ture: Dif­fer­en­ti­able and In­verse Ren­der­ing

21.05.2024 Wenzel Jakob

Lec­ture: NeRF

28.05.2024 Wenzel Jakob

Fi­nal pro­ject com­pet­i­tion