Realistic Graphics Lab

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

Tuesday: 16:15-18:00
Exercise (in BC07-08):
Thursday: 15:15-16:00
Wenzel Jakob
Tizian Zeltner
Teaching Assistant
Merlin Nimier-David
Teaching Assistant

General information


Res­ults from the 2018 ren­der­ing com­pet­i­tion are avail­able here (see also the 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 (60%), fi­nal pro­ject (40%)

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 (3rd edi­tion) by Matt Pharr, Wen­zel Jakob, and Greg Humphreys. You can ac­cess PD­Fs to the in­di­vidu­al chapters by fol­low­ing this link with­in the EPFL net­work or by down­load­ing them from Moodle.

Con­tact: Please use either the dis­cus­sion for­ums on Moodle or cs440@listes.ep­fl.ch to con­tact the course staff. Make sure not to post sens­it­ive ma­ter­i­al (e.g. solu­tions to ex­er­cises) on Moodle — the mail­ing list is pre­ferred in this case.

Of­fice hours: We also of­fer the fol­low­ing of­fice hours:

  • TA of­fice hours (Tiz­ian, Mer­lin): Wed­nes­day 16:15—17:15 (BC350)
  • Fac­ulty of­fice hours (Wen­zel): Monday 16:00—17:00 (BC345)

Of­fice hours may some­times be moved to dif­fer­ent times, in which case we'll send an an­nounce­ment on Moodle.

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 chose 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.2018 Wenzel Jakob

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


Ex­er­cise: Get­ting star­ted with Nori, Re­view of C++, TBB, and the Ei­gen lin­ear al­gebra lib­rary

27.02.2018 Wenzel Jakob

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

06.03.2018 Wenzel Jakob

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

13.03.2018 Wenzel Jakob

Lec­ture: The phys­ics of light trans­port and scat­ter­ing

20.03.2018 Wenzel Jakob

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

27.03.2018 Wenzel Jakob

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

03.04.2018 Wenzel Jakob

East­er va­ca­tion.

10.04.2018 Wenzel Jakob

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

17.04.2018 Tizian Zeltner

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

24.04.2018 Wenzel Jakob

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

01.05.2018 Wenzel Jakob

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

08.05.2018 Wenzel Jakob

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

15.05.2018 Wenzel Jakob

Lec­ture: De­nois­ing & Quasi Monte-Carlo Sampling

22.05.2018 Wenzel Jakob

Lec­ture: Pro­duc­tion ren­der­ing

29.05.2018 Wenzel Jakob

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