CS5625 Interactive Computer Graphics

Cornell University

T/Th 10:10am, Gates G01

Instructor: Steve Marschner (Office hours: Tuesday/Thursday 1:15-2:15pm at Gates 313)

PhD TA: Pramook Khungurn (Office hour: Friday 11:30am-12:30pm at Gates G13)


date topic reading assignments
22Jan intro    
27Jan shading models    
29Jan deferred shading    
3Feb textures    
5Feb environment illumination   PA1 out
10Feb PA1 and framework    
12Feb signal processing    
17Feb —February Break—    
19Feb signal processing   PA1 due
24Feb signal processing    
26Feb PA2 and framework   PA2 out
3Mar texture antialiasing slides Williams doi cms
Greene & Heckbert CGA 1986 doi cms
5Mar texture antialiasing McCormack et al. 1999 doi cms  
10Mar shadow maps slides Williams SIGGRAPH 1978 doi cms
Kilgard slides
12Mar shadow maps Reeves SIGGRAPH 1987 doi cms
opengl-tutorial.org tutorial
PA2 due, PA3 out
17Mar shadow volumes slides Crow SIGGRAPH 1977 doi cms
McGuire GPU Gems web
Stich et al. GPU Gems 3 web
19Mar soft lighting slides Mittring SIGGRAPH 2007 course notes web cms
Chapman tutorial
24Mar soft lighting McGuire et al. HPG 2011 doi cms  
26Mar final projects   PA3 due
31Mar —Spring Break—    
2Apr —Spring Break—    
7Apr soft lighting    
9Apr PA4 | spherical harmonic lighting   PA4 out, proposals due
14Apr midterm review    
16Apr midterm    
21Apr spherical harmonic lighting slides Sloan et al. 2002 doi cms
Sloan on SH tricks web cms
23Apr color science   PA4 due
28Apr HDR    
30Apr subdivision    
5May milestone presentations    


There will be approximately 5 programming assignments during the semester and possibly one or two written assignments. Some assignments are individual and some may be done in pairs.

See it here. You can download the ZIP file containing the code from CMS. We will also create a git repository to which we will push updates to the code base later.
See it here. You can download the ZIP file containing the code from CMS or check out PA2 from the git repository https://bitbucket.org/smarschner/cs5625-15sp-pas.
See it here. You can check out PA3 from the git repository https://bitbucket.org/smarschner/cs5625-15sp-pas.
See it here. You can check out PA4 from the git repository https://bitbucket.org/smarschner/cs5625-15sp-pas.


There will be an in-class midterm on or around April 9.

The exam is closed book, but you're allowed to bring one letter-sized piece of paper with writing on both sides, to avoid the need to memorize things.

About CS5625

Questions, help, discussion: The instructor and TA are available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (handy link also at the top of this page).

Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it.

School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor or the TAs, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see Cornell's Code of Academic Integrity.

Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone (or only with your partner if you are doing a project as a pair). In particular, it's never OK for you to see another student's homework writeup or another team's program code, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.



Tomas Akenine-Moller, Eric Haines, and Naty Hoffman,
Real-Time Rendering

The third edition is available as an ebook via the library (link). Search for "Real-Time Rendering". Or authenticate at the link above, and then directly go to this link

Supplemental Books and Materials: