CS 445: Exam 1 Review, Fall 2017
Exam 1 will be Wednesday, Oct. 4, 2017. It will be closed notes,
closed book, and no electronic devices are allowed. Paper and pencil only.
Topics
-
Highly Recommended: Work through the old exams (with paper and pencil) without looking at the solutions.
WebGL Pipeline, Structure & Setting up the geometry
- GPU vs CPU
- What are Vertex Buffer Objects (VBOs) and why are they used?
- Geometry Primitives:
GL_POINTS, GL_LINES, GL_TRIANGLE, GL_TRIANGLE_FAN
- OpenGL Primatives and what is their relationship to the data that gets put in the points() and colors() arrays (eg. on the Cube class).
- How are the points generated, e.g. for the Disk class.
- z-buffer
- polygon meshes
- Rendering pipeline
- Rasterization
- Vertex attributes vs uniform variables
Geometric Objects and Transformations
- Coordinate systems -
right/left handed
- Scalars, Points and Vectors - what are they and what operations are allowed between them?
- Vectors: representation, length, addition, scalar multiplication,
dot products, cross products.
- Matrix Operations: multiplication, addition, transpose, inverse (of standard
transformations such as rotations, translations,scale), identity.
- 3D Transformations: Translation, Scale, Rotation, Reflection, Projection.
- Composition of transformations.
- Homogeneous coordinates. What are they, why are they used?
- How 3D Transformations are applied in webgl using the "modelview" matrix and matrix stack. What happens when you
push and pop the stack. What does the stack contain at each
step in the code.
- What are Euler angles? What is gimbal lock and when does it occur?
-
Scene graphs - be able to create the scene graph for a particular structure (car, robot, robotic arm, ...)
- Draw picture of object with lengths, angles, type of movement, etc.
- Draw the associated scene graph with the precise transformations identified.
- Implement the sequence of "opengl operations" (using RotateX(theta), RotateY(theta), RotateZ(theta), Translate(x,y,z),
Scale(x,y,z), PushMatrix, PopMatrix).
You don't need to know the exact syntax but the type and order of the operations is important.