Time: T/Th 9:40am-10:55am
Discussion: Ed Discussion
Online Lecture: ohyay (use netid email)
PhD TA: Joy Zhang
UG TA: Andrei Shpilenok
UG TA: Ruby Min
Links to non-open-access articles will work from on campus, or go to library.cornell.edu and search for an article title or DOI to get NetID authenticated access. Most articles also have author-hosted versions that can be readily discovered.
Due dates are subject to change.
|27||Jan||radiometry notes||PBR Sec 5.4|
|1||Feb||BRDF and irradiance integrals notes||PBR Sec 5.5-5.7|
|3||Feb||BRDF and irradiance integrals | shading overview slides||Devops due|
|8||Feb||BRDF and reflection | shading overview|
|10||Feb||probability | C++ notes||PBR Sec 13.1, 13.3.1|
|15||Feb||Monte Carlo illumination slides notes||PBR Sec 13.2|
|17||Feb||area lighting||Ray Tracing cp1 due|
|22||Feb||forward and deferred shading slides|
|24||Feb||pipeline basics | shading frames||Lengyel 2019 pdf||Ray Tracing cp2 due|
|3||Mar||shadow maps slides||Williams SIGGRAPH 1978 doi
|8||Mar||soft shadows||Reeves SIGGRAPH 1987 doi
Fernando 2005 sketch
Eisemann et al. 2013 course notes
|Ray Tracing due|
|10||Mar||environment and ambient illumination slides||Mittring SIGGRAPH 2007 course notes web
McGuire et al. HPG 2011 doi
|15||Mar||framebuffers and textures|
|17||Mar||ambient occlusion||Pipeline cp1 due|
|22||Mar||viewing flare and bloom||Spencer et al. 1995 doi|
|24||Mar||image processing in shaders||Pipeline cp2 due|
|29||Mar||atmospheric effects and sky models slides||Nishita et al. 1993 doi
Preetham et al. 1999 doi
Hosek & Wilkie 2012 doi
|31||Mar||shadow volumes slides||Crow SIGGRAPH 1977 doi
McGuire GPU Gems web
Stich et al. GPU Gems 3 web
|12||Apr||mesh animation slides notes||Kavan, SIGGRAPH skinning course I.1-2|
|14||Apr||rotations and rigid motions slides||Kavan et al. 2008 doi||Pipeline due|
|19||Apr||rotations and quaternions, cont'd.|
|21||Apr||antialiasing and texture filtering slides slides||Williams doi
Greene & Heckbert CGA 1986 doi
McCormack et al. 1999 doi
|26||Apr||microfacet models slides||Walter et al. 2007 web||proposals due|
|28||Apr||normal map antialiasing slides||Olano & Baker 2010 web|
|3||May||efficient meshes slides||RTR 4e Ch. 16
Hoppe 1997 web, 1999 web
Garland & Heckbert 1997 pdf
|5||May||particle systems slides||Witkin and Baraff 2001 course notes|
|10||May||project milestone presentations|
|15||May||final project due date|
During the first three-fourths of the semester there will be three projects that require fairly ground-up implementations of a variety of real-time rendering and animation techniques using C++. Assignments may be done in pairs. Projects will be graded based on reports and in-person demos. These assignments are being updated this semester, and the dates and topics are subject to change.
The details will be released when it's time to work on the projects, but the planned projects are:
- Devops: a simple “assignment zero” to get the framework set up and compiled.
- Ray tracing: a CPU-based real time ray tracer using the Embree API that does physics based shading.
- Pipeline: a GPU-based renderer using the OpenGL API that replicates many of the effects the ray tracer achieves, but faster.
- Animation: an extension to Pipeline that plays back mesh-based character animation.
- Final project: a project of your choosing that extends these assignments with something new.
The longer assigments have weekly checkpoints where you will send us a progress report, to help you keep moving and to help us stay aware of how everyone is doing with the implementations.
Office Hours Schedule
The calendar can also be viewed here in case of problems with the embedded version.
Questions, help, discussion: The instructor and TAs 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 Ed (handy link also at the top of this page).
Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves and to help one another track down problems. The framework-free nature of our coding assignments means that students' programs will be very different from one another, so there is less worry than in some other classes of accidentally glimpsing the solution on another person's screen. But when it comes to actually designing and implementing the projects, your code needs to be your own work (or you and your partner's). In particular, it's 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.
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.
Real-Time Rendering (4th ed.)
This book is a compendium of good, reliable information that covers many basic and not-so-basic real-time graphics techniques. The Cornell library provides access to an electronic edition.
Fundamentals of Computer Graphics (5th ed.)
This book is a good source for a lot of the basic computer graphics material, and goes at a bit gentler pace than the book above. Many of you may own a copy from CS4620. The Cornell library provides access to an electronic edition.
Supplemental Books and Materials
- OpenGL 4.0 Shading Language Cookbook by David Wolff
- Graphics Shaders: Theory and Practice by Mike Bailey and Steve Cunningham
- GPU Pro 2 Edited by Wolfgang Engel
- OpenGL "Red Book" --- *the* reference for OpenGL programming
- Nate Robin's OpenGL "tutors" programs
- 3-D Computer Graphics: A Mathematical Introduction with OpenGL, Volume 385, by Samuel R. Buss
- Andrew S. Glassner, An Introduction to Ray Tracing, 1989