CSCI-UA.0480-003 Computer Graphics, Spring 2012

Instructor: Denis Zorin, dzorin@cs.nyu.edu
Office hours: 3:15-4:15 Monday, or by appointment.
Time: 2:00-3:15pm Monday and Wednesday
Location: 719 Broadway, rm 1201
Class-related e-mail: I cannot promise an immediate response, it may take several days. Please include CG class in your e-mail subject, to make sure it does not get lost/filtered. If you have an urgent matter to discuss, please say so in the subject.
Grader: Xinxin Zhang, zhxx@nyu.edu

Requirements and grading policies

Prerequisites No prior knowledge of computer graphics is required. The knowledge of basic linear algebra is assumed. Solid programming skills in UNIX or Windows environments in C or C++, C++ is strongly preferred. Assignments cannot be done in Java.

Grading There will be five programming assignments and one or two written assignments. The assignments will count for approximately 80% of the final grade. There will be a final exam.

Late policy The penalties for turning in assignments after the deadline are as follows:

If you need an extension, you have to contact the instructor in advance. Extensions will not be granted on the last day, unless there are unexpected circumstances beyond your control.

Grading of programming assignments Your grade will depend on the quality of your code. We expect you to follow the guidlines of a style guide (old, but relevant as ever). Up to 50% penalty applies if your program crashes (does not apply to assert failures).

Final May 14, 2-3:50pm,rm. 1221, 719 Broadway. If you need your grades posted, on May 15, please send me an e-mail, and I will grade it on the same day. You will need to turn in your last assignment earlier, no later than May 12. Questions for final exam review.

Assignments

Instructions for submitting the assignments

Syllabus

Homogeneous coordinates and transformations, transformation hierarchies, image processing basics, texturing, lighting, spline curves and surfaces, meshes, subdivision surfaces, interaction, ray tracing, introduction to programmable graphics hardware.

Recommended reading

Lecture notes

will be posted here.
January 23Introduction. Slides
January 25Geometry review I. Slides
January 30OpenGL and GLUT basics.
Code: movingsquare.cpp cvec2t.h cvec3t.h
February 1Transformations; homogeneous coordinates Slides
February 6Transformation hierarchies. Slides
February 8Transformations in OpenGL, code example. Code
February 13Viewing. Slides.
February 15Viewing, continued; lighting. Slides
February 22Lighting continued
February 27Viewing code discussion. Texturing introduction Slides
February 29Texturing continued. Basic signal processing, filtering, mipmapping.
March 5Texturing continued: OpenGL textures. Slides, also see Chaper 9 of OpenGL programming guide. texture.cpp
March 7Scan conversion, Z-buffering, review.
March 19Meshes and mesh data structures. Slides
March 21Meshes and mesh data structures continued.
March 26Subdivision surfaces. Slides
April 2Spline curves
April 4Ray tracing, introduction and basic algorithm POV-Ray, Slides
April 9Ray tracing, continued. Slides
April 11Ray tracing -- acceleration structures. Spline patches
April 16Programmable graphics -- overview and history.
April 18Shaders and shading languages. GLSL basics. Introductory tutorial. Web site for the GLSL book ("Orange book").
April 24Texturing in shaders, bump mapping.
April 26Noise functions, procedural textures with noise, Shadow mapping. Ken Perlin's noise slides. shadow mapping tutorial by C. Everitt et al.
April 30, May 3Review.

© 2012, Denis Zorin