Sample Questions for Exam 2


  1. Indicate whether each of the following statements is true or false:

    (1) _____ All projection matrices, , have the property .
    (2) _____ Insulating materials (like sand) are transparent.
    (3) _____ A perfect diffuser appears shiny.
    (4) _____ Gouraud shading an Phong shading differ in the way they handle transparency.
    (5) _____ In an orthographic projection the projectors are skew.

  2. Choose the best answer to each of the following:

    (1) _____ A 3D point in Homogeneous coordinates has how many elements?
    1. 2
    2. 3
    3. 4
    4. None of the above
    (2) _____ A 3D rotation matrix in Cartesian coordinates has how many elements?
    1. 3
    2. 9
    3. 16
    4. None of the above
    (3) _____ How many prinicpal faces are visible when using an axonometric view?
    1. 2
    2. 3
    3. 4
    4. None of the above
    (4) _____ How many different foreshortening ratios are there in an isometric view?
    1. 2
    2. 3
    3. 4
    4. None of the above
    (5) _____ When light falls on a surface it can be:
    1. Absorbed
    2. Permuted
    3. Obtused
    4. None of the above

  3. Answer each of the following:
    1. Convert the point from Homogeneous coordinates to Cartesian coordinates.

    2. Convert the point from Homogeneous coordinates to Cartesian coordinates.

    3. Convert the point from Cartesian coordinates to Homogeneous coordinates.

    4. Project the 3D (Homogeneous) point onto the plane using an orthographic projection. Note: Do not translate or rotate the point before projectng.

    5. Project the 3D (Homogeneous) point onto the plane using a perspective projection with a center of projection at . Note: Do not translate or rotate the point before projectng.

    6. Suppose, at a particular point, the light source vector is given (in 3D Cartesian coordinates) by and the normal vector is given by . Compute the reflection vector for a perfectly reflective surface. Show all of your work.

    7. Suppose, at a particular point, the light source vector is given (in 3D Cartesian coordinates) by and the viewer vector is given by . Compute the halfway vector. Show all of your work.

  4. Given a plane defined by the three Cartesian points , , and :
    1. Find a vector that is perpendicular to this plane. Show all of your work. Note: Your answer need not have a norm of 1.

    2. Determine whether the points and lie on the same side of this plane. Show all of your work.

  5. Use the following shear matrix:

    to transform the point:

  6. In binary space partitioning, when all of the vertices of a triangle are not on the same side of the place, we split the triangle into three pieces. Explain why we split it into three pieces and not two pieces.

  7. Explain Lambert's Law and how it can be used to model diffuse reflection.

  8. Explain Mach bands.

  9. Concatenate the following two 2D (Cartesian) transformation matrices, assuming that the scaling, occurs before the rotation, .

    and

  10. Answer both of the following:
    1. How many multiplications and additions would be required to scale and rotate 100 2D (Cartesian) points if the two transforms were applied sequentially?

    2. How many multiplications and additions would be required to scale and rotate 100 2D (Cartesian) points using the concatenated transform above?

  11. Given the following 2D (Cartesian) points:

    and the following add() method (in pseudo-code):

          add(Point p, Node n)
          {
              if (p isRightOf n.point)
              {
                  if (n.right == null) n.right = new Node(p)
                  else                 add(p, n.right) 
              }
              else
              {
                  if (n.left == null)  n.left = new Node(p)
                  else                 add(p, n.left) 
              }
          }      
          

    draw the binary space partitioning tree that would be generated by the following "main" method (in pseudo-code):

          root = new Node(point[0])
    
          for (i = 1...N-1)
          {
              add(point[i], root)
          }      
          

  12. Using the following:

    calculate the -value at each relevant pixel on the scan line.

  13. Given the following methods in the Geometry3D class:
        public static double[][] getRotationAroundX(double phi)
        
        public static double[][] getRotationAroundY(double theta)
        

    complete the following trimetricView() method. Your answer must be consistent with the comments describing the method. You may use methods that were required in the VMath and MMath classes.

        /**
         * Transforms the given points so that they will
         * be rendered using a trimetric view
         *
         * @param phi    The rotation around the x axis
         * @param theta  The rotation around the y axis
         * @param p      The points
         * @return       The transformed points
         */
        public static double[][] trimetricView(double phi, double theta, 
                                               double[][] p)
        {
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        }
    

  14. Write a method that is passed all of the necessary information and returns the color that should be used for a pixel using Gouraud shading. Note: Your method need not determine whether the point should be filled (i.e., whether it is visible or not).

Copyright 2007