CSCI-GA.2270-001
Graduate Computer Graphics
Warren Weaver Hall
251 Mercer St, room 101
Wednesdays, 5:10pm-7:00pm
Office hours:
Tuesday, 4-5pm
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 a graduate 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:
Class notes
(so make sure you come to class!),
will be posted on-line after each lecture.
A useful (but not required) reference:
Computer Graphics: Principles and Practice (3rd Edition)
Graders:
To be announced
Discussion list:
TBA
Rough outline of possible topics (this may change):
Setting up a homepage and access to computers:
Most of you have the homepage and computers thing
already figured out. But just to make sure you have
at least one way to show your work on line,
here are some suggestions:
(1) Post your work using CIMS web hosting.
Here's their web page on it:
http://cims.nyu.edu/webapps/content/systems/userservices/webhosting
(2) NYU Sites seem like a great option for students to
make their own webpages. The instructions for that are here:
https://nyu.service-now.com/servicelink/kb_search.do?id=041203716051606
There is also an NYU-hosted WordPress option, but I'm not sure whether that will let you run javascript:
http://www.nyu.edu/life/resources-and-services/information-technology/websites-storage-and-sharing/web-publishing/getting-started.html
To post assignments
for this class, you should set up a subdirectory
of your web site.
Name this subdirectory "graphics".
It should have a main "index.html" file, and
that file should link to the various
homework assignments.
After the first class, you will send the grader
an email, with subject line "graphics",
telling him the URL.
Sept 2: Introductory Lecture
We went over, at a high level, the topics
we will cover in the class.
I showed the following videos:
Then we broke into small groups where people
brainstormed about possible future computer graphic interfaces they might create,
should Moore's Law continue for another few decades.
Your assignment for Wednesday Sept 9 is to:
- Create or choose a web site for this class, as per the instructions above;
- Send me an email with the title "GRAPHICS", giving me the URL of that web site.
- Post an essay on that page, telling me why you are taking the class,
what you hope to get out of it,
and any particular topics you would like me to discuss.
You should call this essay "Assignment 0".
Sept 9: Introduction to shaders
The notes and assignment for this class are here.
Sept 16: Introduction to ray tracing
The notes and assignment for this class are here.
Sept 23: Procedural noise based texture
The notes and assignment for this class are here.
Sept 30: Even More ray tracing
The notes and assignment for this class are here.
October 7: Introduction to matrices
The notes and assignment for this class are here.
October 14: Various
This week I just talked about various things, rather than pushing
forward on new material, so that you would have a chance to catch
up on the homework, since a number of you seem to be struggling.
In class I implemented an example of using the matrix package to create a pair
of walking legs. As you develop your own matrix object, you can
try it with that example.
At the end of the class, we showed the classia animated short
Gas Planet from 1992.
October 21: Parametric shapes
The notes and assignment for this class are here.
October 28: Introduction to splines
The notes and assignment for this class are here.
November 4: Introduction to WebGL
The notes and assignment for this class are here.
November 11: More WebGL
The notes and assignment for this class are here.
November 18: A WebGL based modeler, part 1
In this lecture we started to examine, in depth, what it would
take to create a full modeler software package on top of WebGL.
Because we only got part of the way through the topic, and
because this coming week is Thanksgiving, I am not going to be
assigning any new homework.
This is a chance for you to fix up any old homeworks, do extra
credits that you never got around to, and in general work
through any bugs and difficulties you may have had.
I am hoping that by the time we meet again after the Thanksgiving
break, everyone will be all caught up. If you are experiencing
any difficulties, please drop me an email, and I will help
you work through them.
December 2: Using a high level modeler / renderer package
The notes and assignment for this class are here.
|