This outline lists the major topics we will cover in the course, grouped by area. The order in which we will cover topics is not the same as the order they are listed here; instead see the course schedule.

Computer graphics is a broad field. The material we will cover is intended to hit the major “bread and butter” techniques of both classical (but still relevant) graphics theory and current practice.

- real vs. floating point numbers
- vectors and vector algebra
- coordinate frames
- rigid and non-rigid coordinate transforms
- transform composition and inversion
- homogeneous coordinates and transforms
- implicit and parametric curves and surfaces
- linear interpolation
- geometric intersection algorithms: ray/sphere, ray/box, ray/plane, ray/triangle

- points, segments, rays, lines, and planes
- circles and spheres
- parametric curves
- Bézier curves and splines
- triangles
- barycentric coordinates
- surface normals
- triangle mesh data structures
- tesselation

- rectangles and polygons in 2D
- scene graph data structures
- bounding volumes
- perception of color; color spaces
- images, image compression, working with standard image formats
- material properties and 3D lighting
- texture mapping

- display devices
- pinhole camera model
- perspective and parallel projection
- shading: flat, Lambertian, Blinn-Phong, Gouraud
- anti-aliasing
- alpha blending
- ray tracing
- shadows
- mirror reflections
- refractions

- rasterization
- rasterizing points and lines
- rasterizing triangles
- painter’s algorithm
- z-buffer hidden surface removal
- typical rasterization hardware pipeline

- viewing volume; clipping and culling

- graphical user interfaces
- navigation
- viewpoint transform
- common navigation modes

- picking and point-in-polygon algorithms

- interpolating poses in 2D and 3D
- keyframing