Exam 1 Study Guide

Exam 1 will cover the class topics from the first 6 weeks of class, up to and including Curves (but not 3D).

The exam covers the topics in the first 11 lectures, the first 6 workbooks (including the Train workbook), and the readings required by the workbooks. The bonus videos are also fair game, but I will not ask questions about GIT on the Exam. (Closures, almost certainly, and the Curves review video is a review of things in the other resources).

This is a rough outline - no promises that it includes everything (any ommission of a topic is not intentional).

A more compact outline can be seen in the video outlines (which organizes things by lecture): Lecture Materials: Videos and Slides. This doesn’t include the workbooks or readings, but most important concepts were discussed in some video.

Hint: Because the exam rules do not preclude you from accessing resources (see Exams (policy)), we are less likely to ask you things that are easy to look up (like memorizing equations), since you can always look them up.

  1. Intro to Computer Graphics
    • Applications
    • Neighboring Fields
    • Course Outline and mechanisms
  2. Web Browser Programming
    • JavaScript basics
  3. graphicsAPIs and API types
  4. Web Browser Programming Basics
    • DOM, Elements
    • embedding javascript, timing
    • scripts and event handlers
  5. Event Driven Programming
    • browser programming model
    • kinds of events
    • animation loops via events
  6. JS Programming Tips (Lecture 2 and Extra Video)
    • basic features, this, objects, …
    • type checking
    • lexical scope and closures
  7. Basics of Human Vision (as motivation for graphics)
  8. Basic graphical representation
    • Raster vs. Geometric
    • Buffers
    • Continuous vs. Flicker/Strobe
    • Flicker Fusion
    • Buffering and Double Buffering
    • Pixels as point samples
  9. Web Browser APIs
  10. Canvas 2D API basics
    • contexts
    • pen/state model
    • immediate vs. retained mode
    • coordinate system
    • state and save/restore, stacks
    • polygon filling rules (even-odd, non-zero winding)
    • non-simple polygons
    • event model
    • transformations in Canvas
  11. SVG (retained mode API)
    • basic concepts
    • event and programming model
  12. Transformations
    • viewing as coordinate system changes
    • composition
    • forward/backwards view
    • local/global coordinates
    • basic transformations (rotate, translate, scale, skew/shear)
    • center of rotation/scaling
    • combining basic transformations
    • non-uniform scales
    • properties of rotations
    • thinking of transformations as functions
  13. Hierarchical Modeling
    • instancing
    • trees/dags
    • hierarchy in scene graph APIs
  14. Vector Operations for Graphics
    • points, vectors, tuples
    • vector and matrix operations
  15. Linear and Affine Transformations
    • matrix representations of key transforms
    • properties of linear and affine transformations
  16. Homogeneous Coordinates
  17. Transformations in APIs
    • matrix stacks
  18. Particle Motion and Flocking
  19. Curve Foundations
    • curves vs. other shapes
    • parameterizations
    • forms of curves (parametric, implicit, subdivision)
    • free vs. shape parameters
  20. Smoothness and Continuity
    • continuity conditions
    • geometric vs. deriviative continuity
    • vanishing deriviatives
  21. Piecewise polynomials
    • forms
    • basis functions
    • cubics
    • hermite forms
    • cardinal forms and interpolation
    • splines
    • Catmull-Rom
    • TCB
  22. Bezier Curves
    • Bezier Properties
    • Bezier Algorithms (DeCastlejau and polynomial forms)
    • Dividing Bezier Curves
    • Converter to/from Bezier Curves
    • limits of Bezier curves
  23. Arc Length
    • concepts
    • numerical computation
  24. Interpolation
    • high order splines
    • Natural Splines (only briefly)
  25. B-Splines
    • basic ideas
    • intuitions for cubics
    • chakin corner cutting as a subdivision approach
    • note: we will only require students to know the basic concepts of B-Splines (as discussed in lecture), the B-Spline readings were optional
  26. Curve concepts hidden in workbooks
    • offset curves
    • adaptive division of curves for drawing
    • building matrices directly (to put things in places)
    • how matrices are represented in code (e.g., row vs. column major)
    • color representations (the color tutorial on the course web was a required reading)
    • SVG events