CG ECSE-4750 Computer Graphics Final Exam, RPI, Tues 2018-12-18
Name, RCSID:
. .
Rules:
- You have 180 minutes.
- You may bring in two 2-sided 8.5"x11" papers with notes.
- You may not share material with each other during the exam.
- No collaboration or communication (except with the staff) is allowed.
- There are thirty six questions. Check that your copy of this test has all the pages.
Questions:
-
_____/2 Put these graphics pipeline components in the correct order:
- fragment-shader
- primitive-assembly
- rasterizer
- vertex-shader
. .
-
_____/2 Which of the following 3D rotation methods is vulnerable to gimbal lock?
- Euler angles
- matrix
- quaternion
- vector
. .
-
_____/2 In the OpenGL pipeline, the Primitive Assembler does what?
- fits together pieces of ancient Sumerian pottery.
- rotates vertices as their coordinate systems change.
- creates lines and polygons from vertices.
- finds the pixels for each polygon.
- reports whether the keyboard and mouse are plugged in correctly.
. .
-
_____/2 When rotating an object, what can happen to an object?
- Straight lines might turn into curves.
- Straight lines stay straight, but angles might change.
- Straight lines stay straight, and angles don't change, but distances may change, either longer or shorter.
- Straight lines stay straight, and angles don't change, but distances might get longer.
- Straight lines stay straight, and angles and distances don't change.
. .
-
_____/2 If i and j are quaternions, what is i+j?
- -k.
- 0.
- 1.
- i+j, there is no simpler representation.
- k.
. .
-
_____/2 If i and j are quaternions, what is ij?
- -k.
- 0.
- 1.
- i+j, there is no simpler representation.
- k.
. .
-
_____/2 The quaternion i represents what rotation?
- 180 degrees about the x-axis.
- 90 degrees about the x-axis.
- 180 degrees about the y-axis.
- 90 degrees about the y-axis.
- no change, i.e., 0 degrees about anything.
. .
-
_____/2 The parametric equation of a line through the points (1,1) and (2,3) is:
- P = (1,1) + t(1,0) + u(0,1)
- P = (1,1) + t(1,1)
- P = (1,1) + t(1,2)
- P = (1,1) + t(2,3)
- P = t(1,1) + u(2,3)
. .
-
_____/2 The normal vector of length one to the plane through the points (1,0,0), (0,1,0), (0,0,1) is
- (1,0,0)
- \(\left( \frac{1}{\sqrt{3}}, \frac{1}{\sqrt{3}}, \frac{1}{\sqrt{3}} \right)\)
- (-1, 0, 0)
- 3
- (1/3, 1/3, 1/3)
. .
-
_____/2 You call gl.BufferSubData to do what?
- to add or replace part of the buffer in the GPU.
- to define a submarine object.
- to subtract some data in the buffer.
- to tell the GPU to look for a pattern and substitute any occurrences,
- to tell the GPU to use a subroutine instead of the main program.
. .
-
_____/2 Translating the 2D homogeneous point by (1,2,3) by (in Cartesian terms) dx=1, dy=2 gives which new homogeneous point?
- (1,2,3)
- (1,2,3,4)
- (2,4)
- (2,4,3)
- (4,8,3)
. .
-
_____/2 Rotating the 2D Cartesian point (0,1) by 90 degrees gives what:
- (1,0)
- (-1,0)
- (0,1)
- (0,-1)
- (-.7,.7)
. .
-
_____/2 Give me a matrix M that has this property: for all vectors p, \(Mp = \begin{pmatrix}2&3&1\end{pmatrix} \times p\). The operator is the vector cross product.
. .
-
_____/2 In a fragment shader, a sampler2D does something more than a simple array lookup like you have in most programming languages. What?
. .
-
_____/4 Tell me about view normalization. What is it? What is good about it?
. .
-
_____/4 Compute the projection equations when the viewpoint is at (0,0,0) and the projection plane is 2x+y+z=4. Use Cartesian coordinates. You do not need to put the result into a matrix form, but simplify your result as much as possible.
. .
-
_____/2 Name the algorithm that was designed to rasterize a circle using only integer additions, subtractions, and shifts.
. .
-
_____/2 In a shader, what is the difference between a uniform variable and a varying variable?
. .
-
_____/2 Give 2 reasons why we usually use a sequence of low-degree curves instead of one high degree curve.
. .
-
_____/2 What does the word rational mean in NURBS?
. .
-
_____/2 What is the difference between Phong shading and Gouraud shading?
. .
-
_____/2 In the Phong lighting model, which computes the color or brightness of each pixel, how do you make a surface material more metallic or shiny?
. .
-
_____/2 Where is the 3D homogeneous point (1,0,0,0)?
. .
-
_____/2 Consider a 2D cubic Bezier curve with Cartesian control points (0,0), (1,1), (2,2), (3,3). What is the point at t=0.5?
. .
-
_____/2 Describe what the curve in the previous question looks like.
. .
-
_____/2 What is Constructive Solid Geometry?
. .
-
_____/2 What texture mapping problem does the mipmap solve?
. .
-
_____/2 Mathematically, the aliasing problem in CG
- happens when high frequency signals are not sampled often enough.
- happens when low frequency signals are sampled too often.
- is a new problem that did not occur with the old displays.
- can be reduced by subsampling and averaging
- both (a) and (d).
. .
-
_____/2 About polygon clipping:
- A polygon might gain vertices.
- A polygon might gain area.
- If a polygon's vertices are all outside the clip region, then it may be deleted.
- Using a 6-stage pipeline keeps the latency the same.
- Concave polygons become convex.
. .
-
_____/2 A small light source that is twice as far away is 1/4 as bright. That is, there is an inverse square fall off for brightness. However, when modeling light in graphics, we usually don't do that. Why?
. .
-
_____/2 What tool maps spectral colors into a human perceptual coordinate system? Your use it to determine the visual result of mixing colors.
. .
-
_____/2 With a B-spline, the joints are usually invisible because the two segments meet with C2 continuity. Sometimes a designer may want there to be a visible kink at a joint, i.e., wants only C0 continuity. How can that be achieved?
. .
-
_____/2 What's the hardest part of implementing the painters algorithm?
. .
-
_____/2 Consider a cube. It has both geometry and topology. What is the geometry and what is the topology?
. .
-
_____/2 Name the javascript WebGL function that sets the current buffer for future buffer operations.
. .
-
_____/2 Name the javascript WebGL function that declares that the current buffer contains 3 floats per vertex (or generally some number of some type per vertex).
. .
End of final exam. Total: 76 points.