-- CS334 (Spring 2008) --

Fundamentals of Computer Graphics



[Course Summary]

Interested in computer graphics? Does graphics, gaming, and simulations interest you? Do you like rendering photorealistic imagery? Do you like rendering artistic imagery? Is doing animations and movies fun to you? All this is part of computer graphics. This course teaches the fundamentals, at an undergraduate school level, for such activities and research projects. For more information on Computer Graphics here at Purdue, checkout http://www.cs.purdue.edu/cgvlab. Major applications include:

1. Prerequisites

Students are required to have previous C/C++ programming experience. Knowledge of linear algebra is strongly recommended. Previous computer graphics experience, such as OpenGL programming experience, is beneficial but not mandatory. OpenGL will be implicitly used in the course: a review of OpenGL will be indirectly given during first half of the semester.

 2. Course work

The course work is composed of programming assignments, exams, and interactive class participation. The programming assignments consist of a warm-up assignment, three incremental programming assignments and a final assignment. The exams consist of a midterm and a final exam. Class participation will consist of active participation during class. This course is hard work but you will learn a lot and have fun!

Classroom: Lecture - LWSN 1106, PSO - HAAS G056

Time: Lecture MWF @ 10:30-11:20am, PSO - W @ 1:30-3:20pm, F @ 3:30-5:20pm

Instructor: Daniel G. Aliaga, Elisha Sacks

Instructor office hours: by appt (send email)

TA: Carlos Vanegas

TA Office Hours: by appt (send email)

3. Grading

            Programming Assignments:        30% (assignments 0-3)

                                                            30% (final assignment)

            Class Participation:                   10%

            Exams:                                     15% (midterm)

                                                            15% (final)


                                                            100% TOTAL


4. Lecture Schedule


Jan 7 Introduction to Computer Graphics (History)

Jan 9 CGVLab and Research Summary

Jan 11 Vectors, points, matrices, coordinate systems, transformations I


Linear Algebra

Jan 14 Vectors, points, matrices, coordinate systems, transformations II

Jan 16 3D->2D Projections I

  Assignment #0 out (1 wk: OpenGL/GLUT/GLUI)

Jan 18 3D->2D Projections II


2D Processing

Jan 21 Holiday

Jan 23 TBA

Jan 25 2D Image processing: rotating, translating, scaling

  Assignment #0 in

  Assignment #1 out (2 wks: 3D point, vector, matrix operations and xforms)


2D Processing

Jan 28 2D Image processing: affine and perspective warping, inferring the transformation

Jan 30 Graphics Pipeline (overview), Line Rasterization

Feb 1 Triangle Rasterization


Shading and Lighting

Feb 4 Colors, Lighting models (Gouraud)

Feb 6 Lighting models (Phong)

  Assignment #1 in

  Assignment #2 out (2 wks: Shading and Lighting)

Feb 8 Other illumination models


Geometric Thinking

Feb 11 Geometry/Triangle Computations I

Feb 13 Geometry/Triangle Computations II

Feb 15 TBA



Feb 18 TBA

Feb 20 Collision Detection Basics

  Assignment #2 in

  Assignment #3 out (3 wks: Collision Detection and Animation)

Feb 22 Animation and Interpolation


Review and Midterm

Feb 25 Review I

Feb 27 Midterm

Feb 29 Solutions


Ray Tracing

March 3 Ray Tracing Basics

March 5 Ray Tracing Advanced

March 7 Ray Acceleration Schemes


Spring Break

March 10 Spring Break

March 12 Spring Break

March 14 Spring Break


Object Representations

March 17 Points, Polygons, Triangles, Curved Surfaces

March 19 LOD, Edge Collapse

  Assignment #3 in

  Final Project out (4 wks)  [models.zip] [makepipe.zip]

March 21   Vertex Clustering, Simplification Trees


Simplification Basics

March 24 Subdividing Triangles I

March 26 Subdividing Triangles II

March 28 Manifolds and Meshing


Spatial Hierarchies

March 31 Top-down Spatial Subdivisions

April 2 Bottom-up Bounding Volume Hierarchies

April 4 TBA


Special Topics I (Computational Geometry)

April 7 Computational Geometry

April 9 Robot Path Planning, Configuration Space, Randomized Algorithms

April 11 Projective Geometry


Special Topics II (GPU Programming)

April 14 Fragment Shaders

April 16 Pixel Shaders

April 18 Final-Project Previews


Review and Demos

April 21 Review I

April 23 Review II

April 25 Demo Day!


Final Exam TBA