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