Special Topics:, Section 041
Undergraduate Computer Graphics

60 Fifth Ave, Rm 110
Tuesdays and Thursdays, 8am-9:15pm

This is the Zoom link for the lectures.

My office hours

Wednesday, 2pm

What we will cover

There are many courses that can teach you how to use commercial computer graphics packages and APIs. This course, in contrast, will teach you how to build 3D computer graphics from the ground up. This will include 3D modeling, animation, and rendering. At the end of the semester you will have built your own complete working real-time 3D computer graphics systems that runs in web browsers.

During this semester you will have the opportunity to work on-line in small teams, learning how to collaborate to build computer graphics content together.

What you should already know

If you are already familiar with JavaScript, that's great. If you are already familiar with Java, C++ or any similar high level language, you will not have any trouble picking up enough JavaScript to do this course. Since this is an advanced course, I will assume that you are already an experienced programmer. If you are not, then I do not suggest you take this course, as there will be weekly programming assignments, and you would not be able to keep up.

Computer graphics uses a lot of matrix math and some calculus. During the semester we will go over all of the matrix and vector math that you will need.

Lectures and Course Notes

Our "text" for this class will be the class lectures and corresponding on-line course notes. The recorded Zoom lectures will be available on BrightSpace. Course notes will be posted on-line after each lecture. Make sure you watch the class lectures!!!

Here are instructions for setting up your website for this class.

Grader:

Keru Wang ( keru DOT wang AT nyu DOT edu )

Semester at a glance:

        TU TH
    Sep  5  7   Rm 110   Course overview, Web canvas, 2D graphics
    Sep 12 14   Rm 110   GPU, GLSL, vertex shaders, fragment shaders
    Sep 19 21   Zoom     Matrices, 3D transformations
    Sep 26 28   Rm 110   Ray tracing 1: rays, spheres, simple shading
    Oct  3  5   Zoom     Ray tracing 2: hilights, shadows, reflection, refraction
    Oct ██ 12   Rm 110   Triangles, triangle strips, joining meshes
    Oct 17 19   Zoom     Cubes, tubes, disks, spheres, cylinders, tori
    Oct 24 26   Rm 110   Noise, turbulence, marble, clouds, fire, etc.
    Oct 31  2   Zoom     Texture mapping, running as client/server
    Nov  7  9   Rm 110   Splines 1: Hermite/Bezier/Catmull-Rom/B-spline
    Nov 14 16   Zoom     Splines 2: snakes, motion paths, limb rotation
    Nov 21 ██   Rm 110   Animation: characters, sequencing, simulation
    Nov 28 30   Zoom     Interaction, multiplayer graphics, XR
    Dec  5  7   Rm 110   Discuss ideas for final project
    Dec 12 14   Rm 110   Practice final project presentations
    Dec 19 21   Rm 110   Give final project presentations
Lecture notes will be posted on Brightspace with your assignments