CSCI-GA.2270-001
Computer Graphics

Bobst LL150
Wed 7:10pm-9:10pm EST

 

 

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.

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.

Grader, homework websites, lectures, course notes, etc.

To email the grader: kw2727 AT nyu DOT edu

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

After you have set up your site, go to Brightspace and tell us the URL ( [YOUR_HOMEPAGE]/graphics ) where you will post you homework assignments.

Our "text" for this class will be the class lectures and corresponding on-line course notes and Zoom recordings.

If you cannot attend a class in person, make sure you watch the Zoom recording!!!

Here is the Zoom link to the course lectures.

Approximate sequence of topics we will cover, around one topic per week (this may change):

Sep  4
Introduction to course
Sep 11
GPU-based shaders
Sep 18
Ray tracing, Phong reflectance
Sep 25
Shadows, reflection, refraction, fog
Oct  2
Procedural noise and textures
Oct  9
Matrices and linear transformations
Oct 16
Polygons: cube/sphere/cylinder/torus
Oct 23
Hierarchical models, joint rotation
Oct 30
Human/Computer Interaction
Nov  6
Texture mapping and sampling
Nov 13
Paths, spline curves and surfaces
Nov 20
Implicit surfaces, skinning + blending
Nov 27
Marching cubes, marching tetrahedra
Dec  4
Character animation + keyframing
Dec 11
Work on final projects
Dec 18
Final project presentations