W Randolph Franklin home page
... (old version)
ComputerGraphicsFall2010/ home page Login

Computer Graphics Fall 2010 group home




Rensselaer Polytechnic Institute, Troy NY USA. ECSE-4750 Computer Graphics Fall 2009 Final Exam.

This exam is open book: you may use calculators and any paper books and notes that you brought with you. You may not use computers or communication devices, or share material with other students.

Answer every question.There are 3 pages with 25 questions.

⇒You may write FREE as the correct answer to any three questions.⇐

  1. _____/1 Suppose that you have 10 triangles that can be arranged into a triangle fan. How many vertices would you have to specify to OpenGL if you use the fact that they can be arranged into a triangle fan.
    12 verts.
  2. ____/1 Which shader is executed first in the graphics pipeline: vertex or fragment?
  3. ____/1 Consider a 3D triangle with vertices (0,0,0), (1,1,1), (1,-1,2). What is the z value of the point in the triangle with x=0, y=1?
    Nothing since that point is outside the triangle.
  4. ____/1 Consider a sheet of paper with a red object printed on it. IOW the ink reflects red light. However, that ink also reflects a lot of the green and blue light. Why?
    The ink reflects a wide range of frequencies, mostly red. That is because the light emits a wide range (unless it's a laser). If the ink reflected only a small range, it would look black since there would be so little incoming light in that small range to reflect.
  5. ____/1 High spatial frequencies can be bad. Name the technique used to remove them.
  6. ____/1 Name the effect which accentuates the visibility of the common edge between two adjacent bands of slightly different brightness.
    Mach band.
  7. ____/1 Where in your visual system is this implemented: retina, optic nerve, visual cortex, pineal gland, big toe?
    retina, optic nerve, or visual cortex. The standard explanation is lateral inhibition in the retina, but some people propose more complicated phenomena.
  8. ____/1 Name the OpenGL technique that takes a texture map and creates a hierarchy of coarser and coarser versions of it.
  9. ____/1 What problem of pixels and texels does that solve?
    Pixels and texels are usually considerably different sizes. Then, texture mapping looks bad. Mipmapping lets you pick the closest-size texels.
  10. ____/1 Why can the following not possibly be a 3D Cartesian rotation matrix: {$$ \begin{pmatrix} 1&1&0\\0&1&0\\0&-1&1\end{pmatrix} $$}
    The 2nd column's length is not 1.
  11. ____/1 If a=(4,5,6) then write {$(a\times p)\, a$} as a matrix depending on {$a$} times {$p$}.
    from Rotation3D {$$a\times p = \begin{pmatrix}0&-6&5\\6&0&-4\\-5&4&0\end{pmatrix}p $$}
  12. ____/1 One way to shade a polygon with many edges is:
    1. split it into triangles, then
    2. shade the triangles.
    If you use this to make a video, then each separate frame may look good, but the video may look bad. Why?
    How the polygon is shaded depends on how it is triangulated. That may change from frame to frame, making the shading change from frame to frame.
  13. ____/1 What is the 4x4 homogeneous matrix for
    1. a 3D rotation by 45 degrees about the X axis,
    2. followed by this translation: x'=x+1, y'=y, z'=z.
    assuming {$\cos\theta=\sin\theta=0.7,$} the matrix is {$ \begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & .7 & -.7 & 0 \\ 0 & .7 & .7 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} $}
    (In some browsers, the decimals are rendered as colons and the commas as semicolons.)
  14. ____/1 Write the vector formula for the 3D rotation by 45 degrees about the X axis,
    {$a=(1,0,0), \cos\theta=\sin\theta\approx.7$}
    {$p' = .7 p + ((.3,0,0)\cdot p) (1,0,0) + (.7,0,0)\times p $}
    {$ = .7 p + (.3 p_x,0,0) + .7 (0,-p_z, p_y) = (p_x,.7p_y-.7p_z,.7p_z+.7p_y) $}
    Any other answer that shows an understanding of the vector formula (and whose numbers are correct) is ok.
  15. ____/1 Why is the Bresenham algorithm less important now than it once was?
    GPUs are faster now so efficiency of line drawing is less important.
  16. ____/1 In the graphics pipeline, when a triangle is processed, the (x,y,z) coordinates of the vertices are interpolated across the whole triangle to give the coordinates of each fragment. Name two other things that may commonly be specified at the vertices and then interpolated across the triangle to give a value for each fragment.
    colors, normals, texture coords
  17. ____/1 Following the principle that less is more, the OpenGL designers decided not to include some functionality that a program that processes images would probably need. Name it.
    Reading and writing image files.
  18. ____/1 As described in Angel, what are the 4 stages of the graphics pipeline?
    1. Vertex processing
    2. Clipping and primitive assembly
    3. Rasterization
    4. Fragment processing
  19. ____/1 Compare Gouraud and Phong shading: Which one is more realistic, especially for highly curved surfaces?
  20. ____/1 Why?
    Gouraud shading computes colors at the vertices and then interpolates them across the triangle and so cannot produce an interior highlight. Phong interpolates surface normals and computes the color at each interior pixel. That can produce highlights. That looks better.
  21. ____/1 Where in the graphics pipeline does texture mapping take place?
    Near the end (at the pixels, once you know which fragments are visible, because texture mapping is so compute-intensive).
  22. ____/1 When clipping in 3D, how many independent clippers are required in the pipeline?
  23. ____/1 When compositing several images, the limited precision of the color (frame) buffers may hurt the image quality. Therefore, OpenGL also has another buffer to composit into. Name it.
    Accumulation buffer.
  24. ____/1 Name the operation that does this:
    "Rather than derive a different projection matrix for each type of projection, we can convert all projections to orthogonal projections with the default view volume This strategy allows us to use standard transformations in the pipeline and makes for efficient clipping"
    normalization or view normalization.
  25. ____/1 What function do you call to change the shininess of a surface (when modeling it in OpenGL)?
    glMaterialf(GL_FRONT, GL_SHININESS, mat_shininess);