This course introduces the fundamentals of computer graphics with hands-on graphics programming experiences. Topics include: graphics software and hardware, 2D line-segment scan conversion, 3D transformations, viewing and projection, programmable shaders, polygon scan-conversion, hidden-surface removal, illumination and shading, compositing, texture mapping, effects of shadow, decal, lattice, fog, firework, etc, ray tracing and radiosity, and so on.


CS 5403 (Data Structures) or equivalents, and knowledge of C/C++ programming.

Regularly check the following for the latest updates:

Announcement (9/12/19):
The location of the TA office hours has been finalized: RH 221, effective immediately.

Announcement (9/5/19): There are no TA office hours today. The TA office hours start next week; tentative location for the first few weeks: 370 Jay Street, 8th floor, the lounge area outside of the large conference room 825.

Links for on-line documents:
1. OpenGL on-line manual (a *.tar.gz file of many *.html files)
2. GLUT on-line manual ("http://www.opengl.org/resources/libraries/glut/spec3/spec3.html")

Links for downloading the OpenGL related packages (for Windows and Linux you need both 1. and 2. below; for MacOS you only need 1. below (see "Compilation and Installation Instructions for OpenGL on Windows" and "OpenGL Compilation on Mac OS or Linux using CMake" below):
1. GLUT 3.7 ("glut-3.7.6-bin.zip")
2. GLEW 1.5.1 ("glew-1.5.1-win32.zip")

Links for OpenGL Information:

TA: Shi Shu (Email: shushi@nyu.edu. Office Hours --- Time: Thursdays 1:00-3:00pm; Location: RH 221.).

Syllabus: (.pdf file)

Compilation and Installation Instructions for OpenGL on Windows

OpenGL Compilation on Mac OS or Linux (written by a former TA Zebin Xu):
"OpenGL Compilation on Mac OS or Linux using CMake" (Instructions)

Handout: example.cpp ("Example.tar.gz") --- Example Program for Basic OpenGL Program Structure
After you un-zip and un-tar the file, there are two files: "example.cpp" and "CMakeLists.txt". On Windows you only need "example.cpp". On Mac OS or Linux you need both --- put them in the same directory; see "OpenGL Compilation on Mac OS or Linux using CMake" Sections 1-4 for more details.

Assignment 1

Last update: 9/12/19.