CSE 5542 Real-time Rendering

Exam Study Guide

  1. OpenGL Pipeline, GPU's and Stream Processors
    1. Why do we call the GPU a stream processor?
    2. What are the five programmable parts of modern GPU's used for graphics rendering?
    3. Why do I state that most OpenGL pipeline diagrams are wrong?
    4. What restrictions are there in going from a vertex shader to a geometry shader?
    5. What restrictions are there in going from a geometry shader to a fragment shader?
    6. What must I do to get stream data into OpenGL?
    7. What must I do to get data out of OpenGL?
    8. Given a triangle strip with 2D coordinates {(0,0), (1,0), (0,1), (1,1)} and a viewport defined by glViewport(100,100,200,200) in a window of size 400x600. How many times for a single frame is the vertex shader called? How many times is the fragment shader called? How many times is the geometry shader called? What would be a probable resultfrom this?
    9. What is the valid range of Normalized Device Coordinates in OpenGL?
  2. GLSL
    1. Write a simple shader to do X.
    2. What is a fragment?
    3. What is meant by a uniform shader model?
    4. Give at least three types of memory available in a GLSL shader.
    5. Consider this set of vertex and fragment shaders along with the following OpenGL program. Draw what the result will be.
    6. True or false; If I want to compute the average of vertex positions, I can do that in the vertex shader as each vertex is processed.
    7. True or false: A geometry shader can output a different primitive than the one passed into it?
  3. Buffers, VAO's and shader bindings.
    1. What is the difference between a Vertex Array Object and a Vertex Buffer Object?
    2. What does OpenGL mean by the term "object"?
    3. What does glGenBuffers(...) do? What does it return?
    4. What does glBindBuffer(GL_ARRAY_BUFFER, 1) do?
    5. What is the difference between the hints GL_STATIC_DRAW and GL_DYNAMIC_DRAW and when would you use each?
  4. Framebuffer Objects
    1. About how much memory does a FBO require?
    2. What operations are required to render to 3 render targets simultaneously?
    3. What does it mean for a FBO to be complete and valid?
  5. Coordinate systems, vectors, points and matrices
    1. Would Dr. Crawfis call (1,2,3,1) a point in 3-space, a 4D vector, or a number sequence?
    2. Write a 3x3 matrix that will take the orthonormal basis vectors, u, v, w to the traditional x, y, z coordinate system.
    3. True or false: A+B = B+A for two matrices A and B of size 4x4?
    4. What is the difference between Affine transformations and rigid body transformations?
    5. What sequence of operations would I need to perform to rotate a square 30 degrees about the point (1,1)?
    6. Where is the eye position in world space? Where is the eye position in camera space?
  6. Environment Mapping
    1. What type of materials are enviroment maps designed for?
    2. How do I determine which face of the cube I should fetch the texture from in a cube map?
  7. Bump and Displacement Mapping
    1. What can displacement mapping do (from a perceptual stand-point), that bump-mapping can not do?
    2. Give three different representations that could be used in a bump-mapping algorithm.
    3. Briefly explain the bump-mapping algorithm and how to compute the D vector.
  8. Texture Anti-aliasing
    1. Compare and contrast Rip-maps to Summed Area Tables.
    2. What are the two major problems with mip-mapping?
    3. Why is texture anti-aliasing needed?
    4. Why and under what circumstances is anisotropic filtering needed?
  9. Lighting
    1. What is the overal benefit of spherical harmonics?
    2. Explain the 2-color hemi-sphere lighting algorithm in one sentence.
    3. Write the illumination formula for Phong shading with specular highlight?
    4. What type of materials would have a white specular highlight? Which ones would not?
    5. How do we compute the transformation matrix needed for lighting? Explain.
  10. Shadows
    1. Ad-hoc methods
      1. Shadow Proxies
      2. Projected Textures
      3. Projected Geometry
    2. Ambient Occlusion
      1. Briefly give an overview of the ambient occlusion algorithm.
      2. How does ambient occlusion affect the run-time performance of a shader?
      3. What is the role of the bent normal and how would use it?
    3. Shadow Volumes
      1. Explain the differences between the zPass and the zFail approaches.
      2. Why isn't a even/odd intersection count (like point in polygon tests) sufficient?
      3. How can we use OpenGL to determine whether a pixel is in shadow or not?
      4. What is the extra geometry required for shadow volumes?
      5. How can we optimize the algorithm?
    4. Shadow Maps
      1. What is the main problem with shadow mapping algorithms?
      2. Why doesn't traditional texture interpolation work well for shadow maps?