CS 445: Final Review, Fall 2012
The final will be Monday, Dec. 10, 2012, from 2-5 pm, and (for Ben) Tues Dec 11, 10am
Review class notes, online notes, labs, and relevant sections in textbook. The exam will be closed
book, no calculators.
Topics
Topics from first half of the semester. See midterm topics.
-
Transformation Pipeline
- Pipeline: Understand what the different stages of the pipeline do:
geometry pipeline
(also see pipeline).
- Calculating u, v, n for the camera. Using these to create the viewRotation matrix.
- View Matrix: Calculating the view matrix: V = viewRotation * Translate( -eye )
- Modelview Matrix: Coordinate transformations of a point: Object Coordinates, World Coordinates,
Camera Coordinates: see picture.
- How do normals transform? If points transform as P' = M P, then the normals transform as
N' = (M-1)T N. Why?
For which transforms can one substitute
M for (M-1)T?
- What is the view volume or Frustum?
- Projection Transformation:
Orthographic and Perspective. See the methods in mat.h:
Ortho(), Frustum(), Perspective(). What is the purpose of the projection transformation? How does it change the
frustum?
- What is the Perspective Division? Why is it separated out from the projection transformation?
- What is rasterization?
-
Controls for Navigation through a scene - See code from lab.
- Fly through transformations.
- Tumble, track, dolly
Shading in OpenGL
- Shaders and the openGL pipeline: Where do vertex and fragment shaders fit in the OpenGL graphics pipeline.
What do the shaders do and what does openGL do.
- What is a vertex shader vs what is a fragment shader.
- Communication between openGL and GLSL - uniform and attribute variables. What is the difference?
- Implementing the Phong Lighting Model in the vertex shader vs the fragment shader.
- Shading Models: Flat Shading,
Gouraud Shading, vs Phong Shading
- Implementing a color map in the shader.
- Advanges of using shaders over the fixed pipeline. E.g. why can't the OpenGL fixed pipeline implement bump mapping
or the Phong Lighting Model?
Blending and transparency with the alpha component.
- How does a z-buffer work?
- Why is it difficult to do transparency correctly? See blending.
- How does the "discard()" function work in a programmable shader and why is it not possible to get the same effect in fixed pipeline.
- Implementing shadows
Textures
- Texels
- Coordinate systems: texture (s,t), parameterized (u,v), world (x,y,z), screen (x_s, y_s).
- Texture coordinates in OpenGL. How does the choice of texture coordinates determine how the
texture is applied to geometry, e.g. a quad. (see Nate Robins tutorials)
- Texture parameters: wrap type - repeat vs clamp
- Combining lighting and texture in shader.
- Generating textures: procedural vs image
- What is bump mapping?
- What is Mipmapping - multum in parvo (many things in a small place)