CS6533/CS4533 INTERACTIVE COMPUTER GRAPHICS (Spring 2024)


Description

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.

Prerequisites:

You need to have knowledge of Data Structures, and be comfortable with C/C++ programming.


Regularly check the following for the latest updates:

Announcement (4/26/2024):
Due to a number of requests, the deadline of HW3 has been extended to Monday 4/29 at 11:59pm. HW4 will still be posted today (due on Tues. 5/14 at 6pm) so that you can start working on HW4 as originally scheduled.

Links for on-line documents:
1. OpenGL on-line manual ("https://www.khronos.org/registry/OpenGL-Refpages/gl4/")
2. GLUT on-line manual ("https://www.opengl.org/resources/libraries/glut/spec3/spec3.html")

Links for downloading the OpenGL related packages (for Windows you need 1. -- 3. below; for Linux you need 1. and 2.; for MacOS you only need 1. (see "Compilation and Installation Instructions for OpenGL on Windows" and "OpenGL Compilation on Mac OS or Linux using CMake" below):
1. FreeGLUT
2. GLEW
3. Visual Studio

Link for the OpenGL community and information:
"https://www.opengl.org/"

TA: Lu Pang. Email: lp2745@nyu.edu. Office Hours (via Zoom meetings): Fridays 2--4pm.

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

Handout: rotate-cube-new.cpp ("Rotate-Cube-New.tar.gz") --- Sample Program for Shader-Based OpenGL, for OpenGL version 3.1 and later
Instructions:
After you un-zip and un-tar the file, there are
1. source files, including C/C++ (*.cpp) and header (*.h) files (to be used for all platforms), and a file "CMakeLists.txt" (to be used for Mac OS or Linux), and
2. two shader files (*.glsl), to be used for all platforms.
Note:
To compile and run ---
For Windows put all files in the same directory/folder.
For Mac OS and Linux, see "OpenGL Compilation on Mac OS or Linux using CMake" Section 5 Notes ("Reading shader files", p.6-8) for more details. In particular, on p.7 there are figures showing the directory hierarchy clearly.
(If you get the error message "Failed to read vshader42.glsl", it means that your OpenGL program is not able to find the vertex shader file "vshader42.glsl" to read. See "InitShader.cpp" line 58. It is nothing related to the GLSL version number. It is related to where you put the shaders.)

Handout: rotate-cube-shading.cpp ("Rotate-Cube-Shading.tar.gz") --- Sample Program for Shading and Lighting using Shader-Based OpenGL, for OpenGL version 3.1 and later
Instructions:
Same as above.

Handout: checker-new.cpp ("Checker-New.tar.gz") --- Sample Program of Texture Mapping using Shader-Based OpenGL, for OpenGL version 3.1 and later
Instructions:
Same as above.

Assignment 1

Assignment 2

Assignment 3

Assignment 4

Last update: 4/28/2024.