These are the instructor’s lecture notes. Note, the actual content of the lecture may differ. For example, often there is not time to cover all details listed in the lecture notes. Also, sometimes the notes are incomplete or do not contain figures.

**For these reasons, not to mention the participation portion of your grade, it is important to come to class.**

- L0 — brief history of computer graphics; course overview
- L1 — floating point math; vectors; vector algebra
- L2 — coordinate frames; segments and rays in 2D; segment intersection
- L3 — lines in 2D; “triangle asteroids” example; output devices
- L4 — rasterizing line segments; line attributes
- L5 — concept of sampling; antialiasing; color perception; color spaces
- L6 — image compression; alpha blending; image scaling
- L7 — GUIs; event-driven programming; user interaction
- L8 — rectangles and polygons in 2D; tesselation
- L9 — triangle meshes; barycentric coordinates; rasterizing triangles
- L10 — transformations in 2D; homogenous coordinates; scene graphs
- L11 — implicit and parametric curves in 2D; local curve properties
- L12 — piecewise polynomial curves in 2D; interpolating curves and splines
- L13 — Bézier curves and the de Casteljau algorithm
- L14 — pose interpolation in 2D; keyframe animation; navigating in 2D
- L15 — homogeneous transforms in 3D; rotation in 3D
- L16 — curves and surfaces in 3D; 3D ray intersection
- L17 — viewpoint transformation; projection; navigation
- L18 — hidden surface removal; 3D rasterization pipelines
- L19 — picking, culling, and clipping in 3D
- L20 — lighting, material properties, and surface shading
- L21 — ray tracing
- L22 — texture mapping