Exam Topics and Notes
NOTES:
- Closed book, closed notes
- Most of what you are responsible for we have have covered in class. However, I expect you to have read the book along with the class - mainly to pick up terminology and the details about OpenGL programming. Stuff that could be on a test that we did not explicitly cover in class includes defining some terms (in bold from the text) and explaining OpenGL commands (that you would have used in your labs).
- Write down answers that convince me you know what you're talking about.
Some questions will require short discussions - I'm looking for the reasons that you gave an answer, not so much the answer itself.
- For transformation matrices, you don't need to multiply the matrices out. If you set up the transformation matrices correctly, that will get you credit.
- I expect you to know the simple equations that we've covered in class such as dot product.
- I don't expect you to memorize or derive the more complex equations e.g., perspective projection, cross-product - but you should be able to talk about the qualities of the calculation.
- you should be able to
- explain an equation that we covered in class if I give it to you, and
- tell me in words what the equation does and how it does it if I don't give it to you but just ask you about it.
- Be able to intelligently discuss issues. When there are various ways to do things you should know the alternatives and be able to compare advantages and disadvantages of each.
- Types of questions
- define terms (single phrase) or explain a term (more detail wanted)
- write small piece of OpenGL code similar to lab assignment
- write transformation matrices to do X - you can use a notation to indicate what the matrix does - the actual 4x4 matrix is not necessary - but be specific enought so that there is no ambiguity
- describe features of operation or procedure
- explain equations
- describe a procedure for doing X
Midterm Topics
- Graphics systems
- Basic Graphics Technology (chapter 1-3), for example,
- terminology
- display devices: CRT, LCD, LED, Plasma, DLP
- input devices
- ray tracing
- z-buffer
- rasterization
- Viewing pipeline: spaces and the transformations between them
- application space / object space
- world space
- eye space
- image space (device independent coordinate system) / clip space
- viewport / screen space / pixel space
- OpenGL architecture, for example
- state machine
- event driven
- callback routines
- idle function
- support for user interaction (glut)
- matrix stack
- OpenGL viewing & programming
- Setup: e.g., Depth test, buffer commands
- ModelView matrix
- gluLookAt
- scale, rotate, translate
- Projection matrix
- glOrtho
- gluOrtho2d
- gluPerspective
- glFrustum
- Front face, back face, vertex ordering
- Viewport command
- Begin-End types
- Vertex
- display list commands
- Interaction
- mapping screen space back to object space
- mouse movements
- keyboard processing
- Transformations (2D/3D)
- properties of scale, rotate, translate, shear, affine
- matrix representations: 4x4
- homogeneous representation
- composite transformations
- hierarchical animation
- transformation between coordinate systems
- rigid transformations
- projections: perspective, orthogonal
- viewport mapping
- Color & Illumination
- Color spaces: RGB, CMY, CIE, HSL
- tristimulus theory of color
- gamut
- metamers
- response of visual system, rods, cones, perceptual space
- local v. global illumination, radiosity, ray tracing
- Ambient, Diffuse, Specular
- Lambert's Law
- Light sources: point, spot, directional
-
-
Approximate point distribution (+/- 5%)
Graphics systems, viewing pipeline, basic technology, OpenGl architecture | 15%
|
---|
the display pipeline: Spaces, transformations, projections & viewing | 40%
|
---|
OpenGL transformations, matrices, hierarchical definitions, | 30%
|
---|
Color & Illumination | 15%
|
---|
Sample questions
- Define the following terms: display processor, API, shadow mask, vector display
- What does the following OpenGL command do: glEnable(GL_DEPTH_TEST)
- In the OpenGl viewing pipeline, describe eye space.
- Give the two normal vectors for the following polygon: (-1,0,-1), (-1,0,1), (1,0,1), (1,0,-1)
- For 2D graphics, write the code to rotate a cube, located at (2,4) about its center by 45%
- Set up the transformation between coordinate systems.
e.g., to define a point P in a camera coordinate system defined by:
Given u = (-1,0,1), v = (1,1,0), w = (.24, 0.45, -.34), O = (3,-5,4)>
- For 3D graphics, write the code to scale a cube along its local x-axis, located at (2,4) and already rotate by 45% around the z-axis
- In OpenGl, with the eye at (0,0,10) looking at the origin, give an up vector that would produce a head tilt to the right of 45 degrees.
- Are 2D rotation matrices commutative?
- Are 3D rotation matrices commutative?
- What is global illumination?
- What is the CMY color space
- What is the tristimulus theory of color?
The Final Exam will:
- be comprehensive
- have more of an emphasis on material not covered on the midterm
- emphasize programming segments that involve OpenGl commands - similar to labs
- cover the 'under the hood' discussions of transformations and spaces involved in the graphics pipeline
- have a list of the OpenGl commands you'll need to answer the questions.
Final Topics
- "Under the hood" - graphics pipeline:
Be able to explain (to the extent we've covered it in class) the processing that z-buffer algorithms (like OpenGL) do in processing geometric data to create a 3D rending.
- 2D viewing, viewport mapping
- 3D transformations: homogeneous coordinates
- world-to-eye space transformation
- clipping
- 3D viewing: perspective projection: 4x4 matrices
- rasterization & interpolation
- Z-buffer Visible surface algorithms: color & depth buffer
- z-buffer v. ray-tracing
- "Under the hood" - shading:
- Illumination types: ambient, diffuse, specular
- Illumination: material properties, light source properties
- Texture mapping: image & procedural; texture coordinates
- Transparency & the alpha channel, and stippling
- Gouraud smooth shading, Phong smooth shading
- OpenGL and lab programming:
This will consist of small program segments to do a variety of tasks that are similar to things you've done in the lab assignments.
Use pseudo-code for non-OpenGL commands as directed.
- use of color and depth buffers
- double buffering
- using the timer command: glTimerFunc
- transformations including hierarchical organization
- setting up the eye: polar coordinates, first person mode: glLookAt, gluFrustum, glPerspective
- light model: point, hooded, directional: glLight, glLightModel
- material properties, illumination, and shading: ambient, diffuse, specular, emission, smooth shading, normals
- setting up projection: orthogonal & perspective: glPerspective, glOrtho2d, glOrtho
- working with the stencil buffer to apply polygonal decals
- working with textures: setting up texture mapping: glTextureCoord
- transparency & stippling
- billboarding
- first person view
- picture-in-picture
- Other graphics knowledge:
Including terms in the first 3 book chapters and other topics we covered in class.
- Basic Technology: frame buffer, displays, color look-up tables, etc.
- Basic Graphics Terminology: vector refresh, pointing devices, etc.
- Ray tracing
- Color: tristimulus theory, metamers, color spaces, additive v. subtractive
- Geometric modeling: computing normals, triangulation, etc.
- Animation: physics-based, mocap, keyframe, FK/IK, etc.
- Shaders: vertex, fragment
Approximate point distribution (tentative)
Under the hood: display pipeline | 20%
|
---|
Under the hood: shading | 20%
|
---|
OpenGL programming | 40%
|
---|
Other graphics knowledge | 20%
|
---|
Sample questions
Also refer to the midterm sample questions.
Last updated 6/1/08