This course teaches students fundamental algorithms for 2D and 3D computer graphics. The course introduces the OpenGL API that is used in the programming assignments. Then it discusses the graphics pipeline, 2D/3D transformations, hierarchical transformations, viewing transformations, rasterization, shading, texture mapping, and programmable shaders. The course proceeds with algorithms and techniques for curve and shape modeling, including parametric, polygonal, and subdivision modeling. It then covers image processing and advanced rendering techniques, such as ray tracing, shadow mapping, and anti-aliasing. It concludes with animation techniques including keyframing, motion capture, character rigging and skinning, forward and inverse kinematics, and physically-based animation.
Students are required to complete 5 programming assignments in Java. There is also a final exam.
The course has the following prerequisites: (a) COMPSCI 187 [or equivalent, such as ECE 242)] (b) INFO 150 -or- MATH 235 -or- COMPSCI 240 [or equivalent courses from other departments]. The course offers 3 credits.
Week 1: Introduction to Computer Graphics, Introduction to OpenGL, Linear Algebra review [assignment 1]
Week 2: 2D/3D transformations, homogeneous coordinates
Week 3: Polygon mesh data structures, Hierarchical transformations, Viewing transformations [assignment 2]
Week 4: Basic Shading, Rasterization, Visibility
Week 5: Texture Mapping, Shadow Mapping, Programmable Shaders [assignment 3]
Week 6: Modeling with parametric curves and surfaces
Week 7: Subdivision modeling, Polygonal Modeling [assignment 4]
Week 8: Basic ray tracing
Week 9: Advanced ray tracing [assignment 5 / project]
Week 10: Image Processing
Week 11: Animation techniques, Character rigging, Forward/Inverse Kinematics
Week 12: Physically-based animation
Week 13: Machine learning for graphics, course re-cap
60% Programming assignments
25% Final exam
15% Weekly quizzes
a) Fundamentals of Computer Graphics, Peter Shirley et al
b) OpenGL Programming Guide (known as the Red Book)