Dot product definition how to compute how to use to find projection distance how to use to determine perpendicularity Cross product definition 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 OpenGL events: mouse, keyboard, glutPostRedisplay, etc event loop idle function display function OpenGL 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 scale/translate/rotate how to specify and move the viewpoint Shaders OpenGL pipeline (vertices, primitives, fragments) VAOs 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 Models 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 ambient emissive Blinn-Phong NOT ON TEST Surface normals where to use in the pipeline (typically the VCS) Pipeline vertices -> primitives -> fragments -> pixels