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

Tuesday: 16:15-18:00
Exercise (in BC07):
Thursday: 15:15-16:00
Wenzel Jakob
Tizian Zeltner
Teaching Assistant
Michalina Pacholska
Teaching Assistant
Leonardo Impett
Teaching Assistant

General information


Res­ults from the 2017 ren­der­ing com­pet­i­tion are avail­able here.

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 (Leo, Michalina, Tiz­ian): Wed­nes­day 2-3PM (BC350)
  • Fac­ulty of­fice hours (Wen­zel): Monday 3-4pm and Fri­day 3:30-4:30 (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. This year's fi­nal pro­ject theme is “Flirt­ing with Dis­aster“. An in­de­pend­ent jury of com­puter graph­ics ex­perts will chose a win­ning entry. The jur­ors in 2017 are

Grand prize: The win­ning prize is a fully fun­ded trip to the Euro­graph­ics Sym­po­sion on Ren­der­ing (EGSR) 2017 in Aalto, Fin­land. EGSR is Europe's lead­ing re­search con­fer­ence on ren­der­ing, and much the latest and greatest work is presen­ted there.

By the way:be sure to check out these ren­der­ing com­pet­i­tions at oth­er uni­versit­ies, which have had sim­il­ar kinds of com­pet­it­ive fi­nal pro­jects:

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.

Ren­der­ing com­pet­i­tion res­ults 2017: ht­tp://rgl.ep­fl.ch/pages/courses/cs440/sp17/com­pet­i­tion2017


Date Lecturer Contents
21.02.2017 Wenzel Jakob

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

23.02.2017 Leonardo Impett

Ex­er­cise: Re­view of C++; In­tro­duc­tion to the Ei­gen lin­ear al­gebra lib­rary

28.02.2017 Wenzel Jakob

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

02.03.2017 Tizian Zeltner

Ex­er­cise: In­tro­duc­tion to the ar­chi­tec­ture of Nori


Re­gis­tra­tion dead­line

07.03.2017 Wenzel Jakob

Lec­ture: Monte Carlo ray tra­cing

14.03.2017 Wenzel Jakob

Lec­ture: The prop­er­ties of light

21.03.2017 Wenzel Jakob

Lec­ture: Ba­sic re­flect­ance mod­els

28.03.2017 Wenzel Jakob

Lec­ture: Glob­al Il­lu­min­a­tion

04.04.2017 Wenzel Jakob

Lec­ture: Mi­cro­fa­cet mod­els

11.04.2017 Wenzel Jakob

Lec­ture: Bi­d­irec­tion­al light trans­port al­gorithms


No course (East­er Hol­i­day)


No ex­er­cise (East­er hol­i­day)

25.04.2017 Tizian Zeltner

Lec­ture: Ad­vanced re­flect­ance mod­els

02.05.2017 Wenzel Jakob

Ex­er­cise: Note: the lec­ture and ex­er­cise ses­sions are swapped this week!

04.05.2017 Wenzel Jakob

Lec­ture: Par­ti­cip­at­ing me­dia & sub­sur­face scat­ter­ing 1 (in BC07)

09.05.2017 Wenzel Jakob

Lec­ture: Par­ti­cip­at­ing me­dia & sub­sur­face scat­ter­ing 2

16.05.2017 Wenzel Jakob

Lec­ture: Quasi-Monte Carlo in­teg­ra­tion, tricks of the trade

23.05.2017 Wenzel Jakob

Lec­ture: Ar­chi­tec­ture of pro­duc­tion ren­der­ing sys­tems

30.05.2017 Wenzel Jakob

Fi­nal Pro­ject Present­a­tion


Course re­gis­tra­tion dead­line.