Realistic Graphics Lab

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

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

General information

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 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 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:

  • To be de­term­ined

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
19.02.2019 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

26.02.2019 Wenzel Jakob
05.03.2019 Wenzel Jakob
12.03.2019 Wenzel Jakob
19.03.2019 Wenzel Jakob
26.03.2019 Wenzel Jakob
02.04.2019 Wenzel Jakob
09.04.2019 Wenzel Jakob
16.04.2019 Wenzel Jakob
30.04.2019 Wenzel Jakob
07.05.2019 Wenzel Jakob
14.05.2019 Wenzel Jakob
21.05.2019 Wenzel Jakob

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