CSCIUA0480006

Mine:  Tuesday, 4pm5pm  60 Fifth Ave, room 302 
Diwakar:  Monday 2:30pm3:30pm  13th floor lounge of 251 Mercer (Warren Weaver Hall) 
Mudit:  Monday 4pm5pm  13th floor lounge of 251 Mercer (Warren Weaver Hall) 
Emily:  Wednesday 4pm5pm  13th floor lounge of 251 Mercer (Warren Weaver Hall) 
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 realtime 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.
Text:
Our "text" for this class will be the online course notes.
Course notes
(so make sure you come to class!!!),
will be posted online after each lecture.
A useful (but not required) reference: Computer Graphics: Principles and Practice (3rd Edition)
Contacts for the graders:
Discussion list:
Mudit mp5099 AT nyu DOT edu Emily sth351 AT nyu DOT edu Diwakar dp2757 AT nyu DOT edu
TBA
Rough outline of topics:
Jan 29, 31  Introductory lectures
Homework (due before start of class on Tuesday Feb 5): Send an email to me at perlin AT nyu DOT edu, with the subject line "COMPUTER GRAPHICS", telling me:

Feb 5, 7  Introduction to WebGL shaders
Here is the progression of fragment shader programs I showed in class on Thursday Feb 7. And HERE are those detailed instructions about how to upload files and directories from a terminal window.

Feb 12, 14  Introduction to ray tracing and noisebased procedural texture
Course notes for Feb 12 lecture + Assignment 2 (due Feb 19) NY Times: Math Algorithm Valentine Course notes for Feb 14 lecture (ray tracing to a sphere)

Feb 19, 21  Phong shading + implementing a ray tracer
Course notes for Feb 19 lecture (Phong shading) Course notes for Feb 21 lecture (making an orange) and a homework assignment

Feb 26, 28  Passing data from Javascript to GLSL, Shadows, Reflection
Course notes + homework assignment for Feb 2628 lectures

Mar 5, 7  Ray tracing to cubes + matrix transformations
Course notes + homework assignment for Mar 57 lectures

Mar 12, 14  Triangle strips and hierarchical animation
Course notes + homework assignment for Mar 1214 lectures

Week of Mar 18  Spring break 
Mar 26, 28  Parametrically defined geometric objects
Course notes + homework assignment for Mar 26 lecture Note: This Thursday, March 28, we will have an exciting guest lecture from my colleague Kris Layng, an award winning art director, concept artist and immersive experience director.

Apr 2, 4  Intro to splines, scenes with multiple objects
Course notes + homework assignment for April 24 lectures

Apr 9, 11  Bicubic surface patches, spline based animation
Course notes for April 911 lectures

Apr 16, 18  Texture mapping
Course notes and homework for week of April 16

Apr 23, 25  Using and generating bump maps, evaluating a bicubic patch
Course notes for April 23 (bump maps, bicubic patches) Course notes for April 25 (automaticallycomputed tangent and binormal vectors)

Apr 30  Mesh deformations and Virtual reality
Course notes + homework assignment for April 30 lecture

May 7, 9  Tour/demos in the NYU Future Reality Lab
Instructions: Come to 60 Fifth Ave (between 12th and 13th Sts) and go up to the 3rd floor.

May 14, 16  Final exam presentations 