Topics that you should expect to learn this semester. Topics will be taught in approximately but not exactly in order.

- Introduction
- Administrative matters
- What is Computer Graphics?

- The 3D Graphics Pipeline
- Graphics Programming and OpenGL
- Event-driven Programming

- Transformations:
- Homogeneous vector and matrix notation
- 2D/3D Transformations
- Chaining transformations
- Nonlinear transformations (free form deformation)

- Modeling Hierarchies
- What hierarchies are and why we use them
- Matrix stack primitives
- Hierarchy Algorithms
- Modeling examples
- Getting the right "control knobs"
- Hierarchies w/nonlinear transformations
- Interface and implementation issues

- 3D Viewing and Projection:
- Perspective projection
- Viewing and view volumes
- Clipping

- Geometric Modeling
- Polygons and polygon meshes
- Spline curves: Natural, Hermite, Bezier, etc.
- Recursive subdivision, forward differencing
- Bicubic surfaces
- Solid primitives, sweeps, B-reps
- Implicit surfaces, quadrics, blobs
- Booleans, CSG,
- Fractals

- Animation:
- Traditional cel animation
- Keyframes: state space points and trajectories
- Inbetweening: linear interpolation,
- interpolating splines, slow in and out, etc.
- Procedural animation
- Inverse Kinematics
- Dynamics and Control
- Interface and implementation issues.

- Rendering
- Line and polygon scan conversion
- Painter's algorithm
- Z-buffer algorithm
- Light and Color
- Illumination and reflection
- Gouraud & Phong shading
- Texture Mapping

- Ray tracing
- Ray-surface intersection testing
- Ray casting
- Shadows and Transparency
- Recursive ray tracing
- Spatial data structures for optimization

- Image Algorithms and 2D Special Effects
- Flood fill, dithering
- Point processing (contrast enhancement, compositing)
- Filtering