CISC 454 Goals for Test 1

Dot product
  how to compute
  how to use to find projection distance
  how to use to determine perpendicularity

Cross product
  how to compute
  how to determine direction of cross product using right hand rule
  how to use to find a vector perpendicular to two other vectors

Basis transforms
  how to use projection (i.e. dot product) to transform from canonical basis to other basis
  how to transform from other basis to canonical basis
  how to handle coordinate systems with different origins

Homogeneous coordinates
  why homogeneous coordinates are useful
  how to convert to and from homogeneous coordinates
  how to scale, rotate, translate with homogeneous transformation matrices
  how to rotate an object about a point other than the origin
  how to project with homogeneous transformation matrices

  events: mouse, keyboard, glutPostRedisplay, etc
  event loop
  idle function
  display function

  how to represent a triangle mesh (list of point, list of faces indexing into points)
  how to render a triangle mesh
  how to apply transformations
  how to specify and move the viewpoint

  OpenGL pipeline (vertices, primitives, fragments)
  VBOs & element arrays
  vertex attributes
  vertex shader
  fragment shader
  uniform variables
  flat/smooth interpolation

Vertex transforms in OpenGL
  viewing transform WCS -> VCS
  projection transform VCS -> NDCS
  corresponding features between VCS and NDCS (i.e. bounding planes, coordinate axes, points)

how the VCS -> NDCS mapping is determined (but don't memorize the development)
  where perspective division is done
  why clipping is done in the CCS

  surface representations: triangle mesh, NURBS, point-based
  volumetric representations: contructive solid geometry, sampled volumes

Triangle Mesh Representations
  Polygon Soup
  Winged Edge
    what fields do the vertex, face, and half-edge store (i.e. what pointers to other structures)
    how to find:
      the right face of a half-edge
      the head vertex of a half-edge
      all edges of a face
      all edges around a vertex
  Triangle strips
    the advantage (k+2 versus 3k vertices used for k triangles)
    the difficulty (NP-hard) in computing a minimal set of triangle strips
    NOT ON TEST: Triangle strip research talk

Hierarchical modelling
  tree representation
  each node stores:
    geometry (possibly empty)
    transform to parent's coordinate system
    list of children
  how to transform node's coordinate system to that of the world
  best choice of coordinate system for each object
Phong illumination model
  diffuse N dot L
  specular (R dot V)^n
    effect of 'n'
    how to calculate R


Surface normals
  where to use in the pipeline (typically the VCS)
  vertices -> primitives -> fragments -> pixels

Back to Goals