Angel and Shreiner: Interactive Computer Graphics, Seventh
Edition
Chapter 7 Solutions
7.1 The major problem is that the environment map is computed without
the object in the scene. Thus, all global lighting calculations of which it
should be a part are incorrect. These errors can be most noticeable if there
are other reflective objects will now not show the reflection of the removed
7.2 This is an example of time domain aliasing. The wheels are spinning in
time.As the wheels increase their speed, the frame rate is insufficient to
avoid aliasing. The frequency of rotation then exceeds the Nyquist rate
7.3 Consider a single sine wave that is sampled at a rate just over the
Nyquist rate with the first sample where the sine is zero. The next sample
will be slightly greater than zero, the following slightly greater (in
magnitude) than the second, and so until we get samples about equal to
the maximum of the sine. Subsequent samples will get smaller and smaller
until we get to the minimum of the sine, and then the values will slowly
increase. This pattern will repeat, each cycle taking multiple periods of the
original sine. Visually, this pattern looks like a modulated sine wave. This
7.4 Television is digital in the vertical direction and analog along each scan
1
line. Hence, aliasing errors only occur in the vertical direction and the
pattern depends on the relationship between the number of scan lines (the
vertical sampling interval) and the vertical spatial frequency content of the
7.5 Once aliasing occurs, it is very difficult to remove because the data
that has been aliased at another frequency is mixed with any unaliased
data at that frequency. Thus, if we remove energy at that frequency, we
7.6 If a surface has opacity α, a fraction 1 αof the light from behind it
will pass through it and will be seen from the front. Now consider two
surfaces with opacities α1and α2. A fraction 1 α1will pass through the
7.7 The basic problem is that when we use subtractive colors and filters,
the colors modulate each other and there is a multiplicative rather than
additive relationship. Thus, if we have two CMY colors. (C1, M1, Y1) and
2
7.8 There are two issues. First, if we use αand 1 αwe avoid problems of
having colors and opacities exceeding 1 and being clipped. However, by
7.10 Suppose that we have three–dimensional texture memory. We can
load this memory with our three dimensional voxel data. Next we can form
a series of 100-200 parallel polygons facing the viewer that slice through
the three–dimensional box of texture. We can map the texture onto these
7.11 Suppose that the histogram of the image is a function f(x) where xis
the luminance. The lookup table formed from the function Rx
0g(x)dxwill
create an image with a flat histogram. A simple discrete example is
illustrative. Suppose we have a image which is 1024 x 1024 and has 256
7.12 Whenever we use regular patterns, we risk creating beat patterns or
Moire effects. Random jitter avoids the problem. Note that in a
7.13 In the perspective projection, each row of squares will have a different
size and thus each will appear as a pattern with a different frequency.
7.14 There are a couple of ways to do this problem.Pre 3.1 OpenGL used
the OpenGL function glTexGen to generate texture coordinates
3
shader.Another option is to use a matrix to scale the texture coordinates
appropriately for each parallelogram.
Consider the side of the cube determined by the plane y= 1. The
7.22 No. Consider a corner of the cube. If the top face is black, both the
front and right must be white. But then when we cross from the front to
7 .23 Generally back-to-front rendering is nice because faces in front
always paint over surfaces behind them. However, the final color is not
determined until the front most object is processed. Suppose you have a
7.26 The basic idea is that the dot product of the normal and other vectors
such as the light vector must remain unchanged by an affine
transformation. In matrix terms, consider a vector athat is transformed to
T a. if we transform another vector bto Sb. We want
7.27 Each time a new mipmap is created, we need 1/4 of the storage of the
previous level. The upper bound is given by the series
4