(1) | _____ |
All projection matrices, \(\bs{P}\), have the property \(\bs{P}^{T} \bs{P} = \bs{I}\). |
(2) | _____ |
Insulating materials (like sand) are transparent. |
(3) | _____ |
A perfect diffuser appears shiny. |
(4) | _____ |
Gouraud shading and Phong shading differ in the way they handle transparency. |
(5) | _____ |
In an orthographic projection the projectors are skew. |
(1) | _____ |
A 3D point in Homogeneous coordinates has how many elements? |
|
||
(2) | _____ |
A 3D rotation matrix in Cartesian coordinates has how many elements? |
|
||
(3) | _____ |
How many prinicpal faces are visible when using an axonometric view? |
|
||
(4) | _____ |
How many different foreshortening ratios are there in an isometric view? |
|
||
(5) | _____ |
When light falls on a surface it can be: |
|
\( \left[ \begin{array}{r r r r} 1.0& 0.5& 0.5& 0.0 \\ 0.0& 1.0& 0.0& 0.0 \\ 0.5& 0.5& 1.0& 0.0 \\ 0.0& 0.0& 0.0& 1.0 \end{array}\right] \)
to transform the point:
\( \left[ \begin{array}{r} 10.0 \\ 20.0 \\ 4.0 \\ 1.0 \end{array}\right] \)\( \bs{P} = \left[ \begin{array}{r r r r r} 10 & 7 & 20 & 30 & 1 \\ 5 & 7 & 3 & 30 & 15 \end{array}\right] \)
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) }
calculate the \(z\)-value at each relevant pixel on the scan line.
getRotationAroundX(double phi)
getRotationAroundY(double theta)
(each of which returns an appropriately sized Matrix
),
complete the following trimetricView()
function.
/** * Transforms the given triangle so that it will be rendered using * a trimetric view. All points are in homogeneous coordinates. * * @param phi The rotation around the x axis * @param theta The rotation around the y axis * @param p The points * @return The transformed points */ Matrix<4,3> trimetricView(double phi, double theta, Matrix<4,3> p) { }
PhongShader
class that implements the
Colorizer
interface (i.e., extends the Colorizer
class and implements all of the pure virtual methods).
FlatShader
class that implements the
Colorizer
interface (i.e., extends the Colorizer
class and implements all of the pure virtual methods).
It's calculateColor
method must use the surface normal
for the triangle (which will be the same at every point), not the
normals at the vertices.
Copyright 2014