Exam review information for CS 5721 Chapter 1 1.1 List the major areas of computer graphics. Answer: top of page 2 1.2 List some major application areas of computer graphics. Answer: page 3 1.3 What are the two dominant paradigms for graphics APIs? Answer: page 4: integrated approach (Java), and software libraries tied to a language (OpenGl and C++). 1.4 What is the most ubiquitous type of 3D geometric model? Answer: page 4: triangle mesh 1.5 What are the basic operations in the graphics pipeline? Answer: top of page 5 1.6 Useful stuff, but I can't think of a good question. 1.7 Useful stuff, but I can't think of a good question. 1.8 (and in homework) What are some basic classes that need to be implemented in a graphics system? Answer: bullet items on page 9. Chapter 2 2.1, 2.2, 2.3 Basic stuff - can't think of good questions. 2.4 Know the definitions of the length of a vector (bottom of page 24 and its extension to 3D vectors - square root of sum of squares of components), dot product of two vectors (equation 2.4 page 25 and the equation at the top of page 26), and cross product of two vectors (second equation on page 26, and equation 2.8 page 27). Know how to construct an orthonormal basis from a single vector (section 2.4.6 page 29). 2.5 Know the formula for a 2D implicit line (equation 2.18 page 34). 2.6, 2.8 Know the formula for 2D and 3D parametric lines. 2.7 Know the implicit equation for a plane (equation 2.22 page 38), and how to find the normal to the plane defined by three points (first equation on page 39). 2.9 I can't think of a good question. 2.10 The basic linear interpolation formula is p = (1-t)a + tb which gives a point the fraction t of the way from a to b along the line segment between them. C(t) = (1-t)*C_a + t*C_b is the interpolated color of that point if C_a and C_b are the colors of a and b respectively. 2.11 Know the formula for the barycentric coordinates of a point with respect to a triangle: equation 2.32 and the equation below it for f_ab(x,y) from Section 2.5 above. How can they be used? If they are all positive, the point is in the triangle; also the point with barycentric coordinates alpha, beta, gamma can be colored alpha*C_a + beta*C_b + gamma*C_c, where C_a, C_b, and C_c are the colors of points a, b, and c respectively. Note that the barycentric coordinates always add up to 1. Chapter 3 3.1 Pixels are basic and centered on coordinates 0 to n_x -1 horizontally and 0 to n_y - 1 vertically. Can't think of a good question. 3.2 The displayed intensity increases proportional to (input value)^gamma (Equation 3.1 page 53). Thus to get linearly distributed display intensities, the input value should be mapped to (input value)^(1/gamma) (first equation on page 54). This is "gamma correction". I could ask "what is gamma correction", but won't. 3.3 Know how to use the RGB color scheme and that red, green, and blue, are the additive primary colors. 3.4 Know the formula of Equation 3.2 page 57. 3.5 Know the basics of the two line-drawing algorithms: the decision function for the midpoint algorithm (eq. 3.3 page 58) and the algorithm (bottom of page 59 to top of page 60 or bottom of page 60); and the parametric algorithm (near bottom of page 61 or page 62 versions) including the color equation (middle of page 62). 3.6 Know the basic algorithm on page 64 or the refined algorithm on page 66, in particular how barycentric coordinates are used (to determine if a point is in the triangle and to calculate the color - as in the formula in the middle of page 63). 3.7 It is good to know the basic idea of using a box filter to do antialiasing, but it's hard to ask good questions on this. 3.8 I can't think of a good question. Chapter 4 - Skip Chapter 5 5.1 Know how to calculate 2D and 3D determinants (formulas on page 120). Know the geometric interpretation of those determinants (signed area of parallelogram spanned by column vectors a and b, and signed volume of parallelogram spanned by column vectors a, b, and c, respectively). 5.2 Know how to compute matrix multiplication (page 122 - special case: Mv, where M is a square matrix, usually 4x4, and v is a column vector). Know that matrix multiplication is associative ( (AB)C = A(BC) ), but not commutative (i.e. AB not = BA usually). Know what the transpose of a matrix is. Know what the inverse of a matrix is (and when it exists - non-zero determinant), and that (AB)^(-1) = B^(-1)A^(-1) (formula near top of page 124). Know that any symmetric matrix with distinct eigenvalues can be put into diagonal form (Equation 5.9 page 130), and any square matrix has a singular value decomposition (formula in the middle of page 131). Also the inverse of an orthogonal (= orthonormal) matrix is its transpose (this fact is in parentheses in the middle of page 148). Chapter 6 6.1 Know the form of the basic 2D transformation matrices: scaling, shearing, rotation, and reflection. Know how compose basic transformations to achieve more complicated transformations (if you want to apply basic matrices M1, M2, M3 to a vector v, form M = M3*M2*M1 and then compute Mv - note the reversal of the order). 6.2 Know the basic 3D transformations (page 147). Know that the matrix to transform from an orthonormal u, v, w system to the standard x, y, z system is given by the transpose of the matrix [uvw] and the inverse transformation is just [uvw] (as shown on page 148). later it will be useful to know how to transform surface normals (Equation 6.5 page 150), but I won't ask about it on the midterm exam. 6.3 Know how to implement 2D and 3D translations (pages 151, 152) by using homogeneous coordinates. Know the 3 steps for computing a windowing transformation (page 153). 6.4 Know what the inverses are for basic transformations (scaling, rotation, translation), and that the inverse of a product is the product of the inverses in _reverse_ order (see 5.2 above). 6.5 Formulas 6.8 and 6.9 page 156 are useful, but I can't think of a good question about them. Exercises 1 (for a 2D rotation), and questions like Exercises 2, 3, and 4 are actually reasonable (i.e. not too hard). Chapter 7 7.1 Know what the canonical view volume is ( [-1,1]^3 ). Know the windowing transformation (Eq. 7.1 page 160 - you don't have to know the "downward-y" form Eq. 7.2 page 161). 7.2 Know how to specify an orthographic view volume (x = l gives left plane, x =r gives right plane, etc. page 162). Know the orthographic matrix M_o (Eq. 7.4 page 163). Know how to find the view matrix, M_v, from e, g, and the view-up vector t (bottom of page 164, M_v in middle of page 165). Know the orthographic viewing algorithm bottom of page 165. Question: how is a general orthographic view specified? Answer: l, r, b, t, n, f, e, g, and t (with their descriptions). 7.3 Know at least one form of the perspective matrix M_p (bottom of page 169 or middle/bottom of page 170). Know the perspective viewing algorithm on page 171. Question: how is a general perspective view specified? Answer: same as an orthographic view, but the view volumes are different (orthographic is a rectangular parallelepiped, perspective is a frustum of a pyramid). 7.4 Are line segments mapped to line segments, triangles to triangles, and planes to planes by the perspective transformation? Answer: yes to all. 7.5 Are there other (non-general) ways to specify a perspective view? Answer: yes the field-of-view form. Exercises 2 and 7 are reasonable questions. <------ End of material covered on the midterm exam ------> Chapter 8 Know basically how each of the three hidden surface algorithms works: BSP trees, Z-buffer, and ray-tracing (in Chap 10). 8.1 What is the key aspect of BSP trees that makes them so useful for applications such as 3D games and flight simulators? Answer: paragraph at the bottom of page 177. Know the basic idea of the "painter's algorithm" (Figure 8.1 page 178). Does BSP essentially use a painter's algorithm? Yes Does ray-tracing essentially use a painter's algorithm? No Does Z-buffer essentially use a painter's algorithm? Sort of Know how BSP tree traversal works. Algorithm page 180. Know basically how a BSP tree is built (algorithm page 182). What is the hardest part of building a BSP tree. Answer: if the triangle crosses the splitting plane, it must be cut (into 3 subtriangles). 8.2 Know basically how the Z-Buffer algorithm works (Section 8.2.1). The exercises are too hard for an exam (except the first part of Exercise 1, which is trivial). Chapter 9 9.1 and 9.2 Know what the terms in the illumination equation (9.9) represent (ambient light, diffuse reflective color, the specular highlight term, etc.). 9.3 Skip this section. The Exercises ask interesting questions, but not for an exam. Chapter 10 10.1 Know the ray tracing algorithm on page 210 (which is a bit more elaborate than the one on page 203). 10.2 Know how the rays are determined. Answer: by rays from the eye through the centers of "pixels" on the front of the view volume (detailed formula not needed). 10.3 Why are spheres used in many ray-tracing scenes? Answer: their intersections with rays are easier to calculate than intersections with triangles. 10.4 Know the ray tracing algorithm on page 210 (see 10.1 above). 10.5 Know how to determine if a point p is in a shadow from a light l. Answer: fire a "shadow ray" from p toward l, if it hits an object, p is in the shadow of l. 10.6 and 10.7 Rays actually bounce a number of times, having their colors altered, before hitting our eyes. How can this be taken into account by ray tracing? Answer: From a point p (of ray intersection with a surface) fire rays in the directions of reflection and refraction and add their returned colors to the illumination at p. These returned colors are determined recursively. 10.8 Though instancing is an important topic, I can't think of a good question on it. 10.9 List ways in which ray-object intersection calculations can be made more efficient. Answer: bounding box hierarchies, uniform spatial subdivision, and BSP. 10.10 Know how CSG works: the basic primitives are solid objects; objects can be combined into more complex ones by the set operations union, intersection, and difference. 10.11 How can a ray-traced scene by antialiased? Answer: break up each pixel into an n-by-n array of subpixels, fire a ray into each one, and average the resulting colors. The Exercises ask interesting questions, but not for an exam. Chapter 11 11.1 How do 3D textures work? Answer: they define a texture at each point in space, and the texture of a point on a surface is just the texture of that point in space. 11.2 How do 2D textures work? Answer: a 2D texture is defined on the unit square [0,1]^2 with (u,v) coordinates, then a mapping f is defined from the surface to the unit square and a point p on the surface is given the texture/reflectance f(p). What is the hard part? Usually defining f() is the hard part. 11.3 How can you map 2D textures onto a triangle mesh? Answer: (a special case of 11.2) for each triangle, give (u,v) values for each vertex, then for each point on a triangle (a,b,c) with barycentric coordinates (beta,gamma), return the texture/reflectance at: u = u_a + beta*(u_b - u_a) + gamma*(u_c - u_a) v = v_a + beta*(v_b - v_a) + gamma*(v_c - v_a) i.e. use the barycentric coordinates to interpolate the vertex (u,v) values (u_a,v_a), (u_b,v_b), and (u_c,v_c). 11.4 The above method works for ray tracing, but not for triangles that have been mapped to device coordinates by the perspective transformation. What goes wrong? Equal distances in the z direction don't transform to equal distances in screen space. Does the book offer a solution? Yes. 11.5 and 11.6 Distinguish between bump textures and displacement maps. Bump textures modify the surface normal, thus modifying the illumination at points, but they don't modify the actual surface. Displacement maps actually modify the surface by moving defining points (of a triangle mesh usually) slightly along the normal direction. 11.7 and 11.8 Can't think of good questions here. The Exercises aren't good exam questions. Chapter 12 12.1 What is clipping? Determining which part (if any) of a triangle is on the "wrong" or "outside" of a plane and discarding that part (which may mean subdividing a remaining quadrilateral into 2 triangles). 12.2 When in the graphics pipeline can clipping be done? 1) in world coordinates, using the 6 planes defining the view volume 2) in 4D space after the perspective transformation, but before the homogeneous divide 3) after the homogeneous divide Which one is often implemented? Answer: usually 2) since the equations are simple ==> fast to calculate, an advantage over 1), and 3) has complicated cases in which the z value of one vertex is positive and another is negative. 12.3 What is "culling"? Bounding a complex object by a simple object and "clipping" the simple object: if the simple object is outside the clip plane, so is the complex object; the same is true for "inside". 12.4 What is "back-face elimination" (also called back-face culling)? In a closed polyhedron, if the normal of a polygon is pointing away from the eye, it can be eliminated before being passed through the pipeline. 12.5 and 12.6 What are the advantages of using triangle strips, triangle fans, and preserved states? Efficiency. 12.7 Draw a picture of the full graphics pipeline. Answer: Fig. 12.6 page 267. The Exercises are good questions, but not for an exam.