CS 381, Fall 2007
Final Exam Information & Review Problems

Final Exam Information

The final exam will be given in the classroom from 1–3 p.m. on Thursday, December 20, and will be worth 50 points. It will be comprehensive, but will emphasize the material covered after the midterm.  The test will be open book and open printed notes only.  Electronic devices will not be allowed; this includes laptops, tablets, PDAs and phones.

The assignments, being oriented primarily toward programming, should not be considered a complete preparation for the test.  You can expect the test to contain problems similar to some of the review problems given below.  Contact Dr. Roth if you need help with the review problems or want to know the answers.


Final Exam Review Problems

Week 10 Review Problems

  1. Where in the OpenGL geometry pipeline do most of the lighting computations go? Be as specific as possible.
     
  2. a. What are the three main ways in which the direction of a beam of light can be altered by interaction with an object? b. Which of these three was covered most in this class?
     
  3. We could have modelled lighting much more realistically than we did by using ray tracing. But we did not. List some reasons why not.
     
  4. a. What does “specular” mean? b. How does light reflect off a specular surface?
     
  5. a. In the context of light reflection, what does “diffuse” mean? b. How does light reflect off a perfectly diffuse surface? c. What is another name for a perfectly diffuse surface?
     
  6. a. What is “ambient” light? b. In CG lighting, what highly unrealistic assumption do we usually make about ambient light?
     
  7. a. In the context of lighting, what is “attenuation”?
     
  8. What is the shape of a typical light source in CG?
     
  9. How is the Lambert cosine usually computed?
     
  10. The Phong Model splits light into three types. a. Name and briefly explain each one. b. OpenGL adds a (very simple) fourth type. What is it?
     
    1. Suppose that the ambient light in a scene has color (0.4, 0.4, 0.4) and that the paint color of a vertex is (1.0, 0.5, 0.0). Compute the ambient component of the Phong model.
    2. Suppose that the direct light in this same scene has color (1.0, 1.0, 1.0) and, for the vertex from part a, the Lambert cosine is 0.8. Compute the diffuse component of the Phong model.
    3. Suppose that specular lighting has been disabled. Compute the final Phong-Model color for the vertex in parts a & b.

     
  11. a. Explain how the specular component of the Phong Model is computed. b. By default, OpenGL deviates slightly from the standard Phong-Model specular computations. Explain. c. Can OpenGL be forced to do the standard Phong-Model specular computation? If so, how?
     
  12. a. What is a “facet normal”? b. How is a facet normal computed? c. Facet normals are easy to compute. Despite this, we do not use facet normals much. Why not?
     
  13. a. How are normal vectors computed in Gouraud shading? b. What is another way to compute normal vectors?
     
  14. OpenGL follows Gouraud shading in that lighting computations are only done at vertices. a. Why is this? (We could do lighting in the fragment operations, right?) b. If lighting is only computed at vertices, how is the color of polygon interiors determined when a surface is lit?
     
  15. Some light sources are “at infinity”. List some ways in which this affects the OpenGL lighting computations.
     
  16. Where a light source actually lies in a scene may not be the same as the position specified with “glLightfv(..., GL_POSITION, ...)” How is the actual position determined?
     


Week 11 Review Problems

  1. A number of direction vectors come into the Phong-Model computations: the surface normal, the viewing direction, and the lighting direction. For each of the following Phong Model components, list which direction vectors affect the computation. a. Ambient. b. Diffuse. c. Specular.
     
  2. In which computation in the Phong Model is there absolutely no physical basis for the formula used?
     
  3. Explain the difference in OpenGL between enabling a “light” and enabling “lighting”.
     
  4. Suppose we place an OpenGL light at position (1, 1, –1). a. What visible effect does this produce at location (1, 1, –1)? b. Suppose we want this light source to appear as a glowing cube. How do we do this?
     
  5. What is the best way to make a light appear to move in OpenGL?
     
  6. Explain exactly what OpenGL’s “double-sided lighting ” does.
     
  7. What is it about OpenGL’s double-sided lighting that makes correct normal vectors especially important?
     
  8. What fact about double-sided lighting shows that lighting computations cannot all be done between model/view and projection?
     
  9. In OpenGL, what is a “spotlight”?
     
  10. It would seem reasonable to specify how wide a spotlight is, using a cutoff angle. And, indeed, OpenGL makes that available. But there is a better way. What is it, and why is it better?
     
  11. a. Explain OpenGL’s “local-viewer” mode: what is it, and what happens when it is off? b. When is local-viewer mode necessary?
     
  12. Good old Egbert is writing an OpenGL program. He has enabled lighting and disabled all lights. “And yet,” he complains, “my objects still appear to have a little bit of light shining on them!” Where is Egbert’s light most likely coming from?
     
  13. Suppose you have implemented a viewing interface using a stored model/view matrix; in particular, you do not explicitly keep track of the camera position. Briefly, how can you determine the camera position?
     
  14. Suppose we need to determine if a 3D point is within a spherical region of radius r in a scene?  How do we do this?
     
  15. What is the difference between a “raster image” and a “pixmap”?
     
  16. a. What are the five broad categories of primitives provided by OpenGL? b. Which categories are available from glBegin-style primitives?
     
  17. a. What is a “bitmap”? b. What are bitmaps used for (primarily) in OpenGL?
     
  18. Draw a diagram of the OpenGL geometry and image pipelines, showing how they fit together.
     
  19. The OpenGL image pipeline begins and ends with the same data type. What practical effect does this have?
     


Week 12 Review Problems

  1. In the context of CG, what do we mean by a “buffer”?
     
  2. In this class, we have dealt with three OpenGL-provided buffers. a. Name them. b. In which OpenGL buffer(s), if any, are alpha values stored? c. In which OpenGL buffer(s), if any, are vertex coordinates stored? d. In which OpenGL buffer(s), if any, are depth values stored?
     
  3. One might expect that an OpenGL implementation would store its color buffer(s) in one block of memory, its depth buffer in another, etc. But this is usually not the case. a. Explain how a typical OpenGL implementation will store its buffers. b. Give an advantage of this storage method over the “obvious” method mentioned above.
     
  4. How do applications typically store images in memory?
     
  5. a. What does BITBLT stand for, and what is it? b. Why does thinking in terms of BITBLT when designing CG hardware allow for efficient implementation of some rendering operations? c. How does this suggest that the “fragment operations” block in the OpenGL-pipeline diagram is not an entirely honest representation of what really happens internally?
     
  6. a. Is glCopyPixels affected by fog settings? b. What about glReadPixels? c. Give a quick explanation of how we can know the answers to parts a & b.
     
  7. a. What is OpenGL’s “unpack alignment”? b. How can it make your life miserable if you don’t deal with it?
     
  8. We studied three (or four?) techniques that come under the heading of “mapping”. a. Name each and briefly describe what it is (and/or how it works). b. Which mapping technique is difficult to implement in unextended OpenGL, and why?
     
  9. a. Bump mapping lacks realism in one very significant way. What is it? b. Therefore, what kind of bumps is bump mapping best at making?
     
  10. Texturing is a way to add cheap detail to a scene. What is meant by “cheap”, and why is such detail cheap?
     
  11. In texture mapping, “the image and geometry pipelines work together”. Explain.
     
  12. Inside a glBegin-glEnd pair, should texture coordinates be specified before or after the corresponding vertex coordinates? Why?
     


Week 13 Review Problems

  1. Explain OpenGL’s texture-wrapping parameters.
     
  2. Explain OpenGL’s texture “mag filter” and “min filter” parameters.
     
  3. Explain the difference between OpenGL’s “replace” and “modulate” texture environment modes.
     
  4. In OpenGL, we can use the same array to hold several textures. Explain.
     
  5. Suppose you are writing a program that uses texturing. You have spent a good deal of effort initializing the texture, setting up all the parameters, etc. Now you want to draw something that is not textured. “Alas!” you cry in dispair, “now I have to undo all my work!” But it is really much easier than that. What should you do?
     
  6. What is “procedural texture”?  Give an example that was discussed in class.
     


Week 14 Review Problems

  1. Briefly explain what the command glTexGen is for, and how drawing is affected by the OpenGL feature it helps configure. You do not need to give the formulae it uses.
     
  2. In OpenGL lighting, you can specify three colors each for both lights and materials (actually, four for materials, if you count emission, but we will ignore that for now). In practice, however, we rarely make use of all the variation that this allows. Explain the usual, “sensible” way to set up the Phong Model colors for both lights and materials.
     
  3. For each object listed below, indicate what CG technique(s) might be useful in drawing it, and explain briefly how each technique works. You do not need to explain how texture mapping works. a. A grapefruit. b. A shiny ball (e.g., a Christmas-tree ornament). c. An icon, as in a GUI. d. A scene containing a slide show projected on a screen. e. An object made of marble (or other complex veined rock).
     

CS 381, Fall 2007: Final Exam Information &  Review Problems / Last update: 17 Dec 2007