
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
Basics
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
Collisions
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