ECSE-4750 Computer Graphics, Rensselaer Polytechnic Institute, WR Franklin, Final Exam, 15 Dec 2014

 


NAME: _______________________________________________



EMAIL:__________________________ RIN:__________________________




TOTAL: ___________/140


  • There are 35 questions. Answer them all. However, you may write free as the correct answer to any two questions.
  • Each question is worth 4 points.
  • There are 10 pages.
  • This exam is closed book; you may have two 2-sided letter-size note sheets. You may not use computers or communication devices, or share material with other students.


  1. ________ If a=(5,1,2) then write {$(a\cdot p)\, a$} as a matrix M, depending only on {$a$}, times {$p$}.












  2. ________ Why can the following not possibly be a 3D Cartesian rotation matrix? {$ \begin{pmatrix} 2& 0 &0\\1 & 0 &0\\0& 0 &2\end{pmatrix} $}












  3. ________ Consider a 3D triangle with vertices (1,2,3), (5,0,1), (0,2,0). What is the z value of the point in the triangle with x=0, y=1?












  4. ________ Name the effect which accentuates the visibility of the common edge between two adjacent bands of slightly different brightness.








  5. ________ 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.








  6. ______ Before memory was cheap enough for depth buffers to be practical, one hidden surface technique involved sorting the objects by distance and then drawing them into the color buffer back-to-front. Name this method.







  7. _______ What is this technique in shader programs called: p.xyzw = q.wyzx








  8. _______ Can the standard OpenGL pipeline easily handle light scattering from object to object? Why (not)?








  9. ________ What is the quaternion for a 90 degree rotation about the X axis?








  10. _______ Write the equations for the following projection: The camera is at (0,0,0). The projection plane is x+y+z=4. Use cartesian coordinates. In other words tell me what the general point {$(x_0 , y_0 , z_0 ) $} projects to.








  11. ________ When texture mapping for a scene with a perspective projection, it is usually not possible to create a single texture map whose texels will be the same size as pixels for all objects in the scene. Why?








  12. _______ Place these 3 steps in order from earliest to latest.
    • fragment processing
    • rasterizing
    • vertex processing





  13. _______ In a shader, what is the difference between a uniform variable and a varying variable?











  14. ______ Designers usually use Bezier curves, where the curve goes near (but not through) the interior control points. They do not usually use Catmull-Rom curves, where the curve goes through all the control points. Why?












  15. ______ Give 3 reasons why we usually use a sequence of low-degree curves instead of one high degree curve.















  16. ______ Define local control.












  17. ______ Aliasing becomes a problem when objects are what compared to a pixel's size?
    1. smaller
    2. larger
    3. the same
    4. The pixel size is irrelevant; aliasing happens when objects are all the same size.







  18. ______ What might clipping do to the number of vertices?
    1. The number of vertices might stay the same or reduce but not grow.


    2. The number of vertices might stay the same or grow but not reduce.


    3. The number of vertices might stay the same or grow or reduce.


    4. The number of vertices must stay the same.






  19. ______ What is a bumpmap, and why is it useful?












  20. ______ In this code to compute diffuse lighting:
    float intensity = max(0.0, dot(N, normalize(L)));
    what's the point of max?












  21. ______ When I write C code to multiply a vector and a matrix, I probably write a for loop. However, in shaders you see simply this:
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
    Why don't you write a loop there?












  22. ______ Why are Euler angles not recommended for animating rotations?












  23. ______ Given a sphere of radius one, what's the normal to the surface at the point (3/13, 4/13, 12/13)?












  24. ______ Describe a type of scene better suited for processing with radiosity than with ray tracing.












  25. ______ What advantage does a cubic spline have over a quadratic spline?












  26. ______ What type of light and surface specially handles a light source that is just above the horizon, compared to a light that is high up.












  27. ______ How would you make a spline that does not have a continuous tangent at a joint?












  28. ______ Why do you need to clip away stuff that is behind the camera? I.e., what's especially bad about this stuff as opposed to stuff that is just outside the clip region?












  29. ______ Why is the normalization transformation useful?












  30. ______ What's a mipmap and what's it good for?












  31. ______ Why is 3D clipping usually implemented with six stages of a viewing pipeline?












  32. ______ What does this do:
    gl.vertexAttribPointer( vNormal, 3, gl.FLOAT, false, 0, 0 );












  33. ______ What does this do:
    gl.bufferData( gl.ARRAY_BUFFER, flatten(normalsArray), gl.STATIC_DRAW );












  34. ______ In the previous question, what does flatten mean?












  35. ______ What causes some people to be tetrachromats?













END