CSCIUA0480006
Special Topics: Computer Graphics
60 Fifth Ave 150
Tuesdays and Thursdays
11am12:15pm
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 should not have any trouble
picking up enough JavaScript to do this course.
Since this is a special topics 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 and vector math and some
differential calculus.
During the semester we will go over
all of the math that you will need.
Text:
Class notes
(so make sure you come to class!),
will be posted online after each lecture.
A generally useful (but not required) reference:
Computer Graphics: Principles and Practice (3rd Edition)
Office hours (at 60 Fifth Ave, third floor):
Mondays 3pm4pm (C DeFanti, room 310) 
Tuesdays 4pm5pm (K Perlin, room 344) 
Thursdays 10am11am (S Herscher, room 314) 
Setting up your class account:
Follow these instructions.
Mailing list:
TBA
NOTE: You do not need to email your homework to the
grader each week. You just need to post your
homework to the website that you use for this course.
Rough outline of topics we will cover (this may change):
 Tuesday, Jan 23: Introductory lecture
 Thursday, Jan 25: Second lecture
 Tuesday, Jan 30: WebGL fragment shaders
 Thursday, Feb 1: Advanced topic: scan converting a triangle
 Ray tracing, part 1: Ray tracing to a sphere
 Ray tracing, part 2: Phong Shading
 Ray tracing, part 3: Matrix transformations
 Ray tracing, part 4: Advanced matrix operations
 Rendering shapes as triangle strips
 Cylinders and Cubes as triangle strips
 Animating hierarchical models
 Cubic splines
 Bsplines splines and mesh normals
 Implicit surfaces, Marching Cubes, etc.
 Bezier bicubic spline surface patches
 Homework due Tuesday May 1
 Advanced topics
