Exam2 Outline
See the Mini-Exam 2: Rules and Information page instead.
See also the Course Outline: Videos and Slides outline.
This is an outline of the topics covered during Weeks 5-8, which will be the focus of Mini-Exam 2. Because these topics build on earlier topics, things from the first weeks of class are still relevant (although they will not be tested directly).
Shapes Basics
- curves vs. areas vs. surfaces vs. volumes
- implicit vs. parametric vs. subdivision forms
- free parameters (parametric representations)
Parametric Curves
- tangents
- piecewise polynomials and parameters
- cubic segments
- Blending (basis) function forms
Piecewise Parametric curves
- continuity conditions
- C vs. G continuity
- Hermite forms
Interpolating Curves
- Hermite interpolation
- sketching and designing with Hermites
- Cardinal Splines, Catmull-Rom splines
- sketching, drawing, converting to other forms, …
- locality (interpolating high-order polynomials)
Bezier Curves
- Bezier curve principles and properties
- Quadratic Bezier Curves
- Cubic Bezier Curves (relationship to Hermite)
- Geometric Algorithms (DeCastlejau)
- Basis Functions (Bernstein forms)
- limits of Bezier curves (why rational curves)
- Bezier curves in APIs
Advanced Curve Topics
- Arc length and arc-length parameterization
- Approximating curves with segments
- B-Splines
- motivations, blending/basis functions
3D Basics
- how we see in 3D
- depth cues (1 eye, 2 eye, image based)
- 3D coordinate systems, right hand rule
- Normals and Tangents
3D APIs
- comparison of WebGL and THREE
- main abstractions of 3D Graphics
THREE Basics
- hello cube abstractions
- meshes vs. geometries
- materials
- transformations and hierarchy
- deferred loading
- lighting and shading basics
- state vs. transformation commands
Transformations in 3D
- use of homogeneous coordinates
- rotate, translate, and scale in THREE
Viewing (Projection) transformations
- Viewing vs. Camera Transformations
- type of projections
- projection math
- clipping and frustum
Rotations
- basic facts
- single axis rotations
- lookat transformations
- rotations about multiple axes
- Euler Angles
- Axis Angle representations
- Gimbal Lock and other Euler Angle problems
- Motivations for Quaternions
JavaScript Tips:
- ES6 modules
- Casts and Type Checks
- modules and type checks
- inheritance and subclasses
- methods and this
- asynchronous programming (callbacks, promises, await)
- parameter passing with dictionaries (WB7-1)