Graphics Reference
In-Depth Information
It's also interesting to ask yourself, “What remains to be done?” Do current
images lack realism because the modeling of materials is inadequate? Because cer-
tain classes of light paths are not being sampled? Because we aren't using enough
spectral bands? Because important information is contained in high-bounce-count
paths, even though very little light energy is there? Probably all of these matter to
some degree. At the same time, we make some assumptions (the “ray optics”
assumption, for one) that limit the phenomena we can hope to capture faith-
fully. Do these matter? How important is diffraction? How important are wave
optics phenomena in general? Questions like these will be the foundation of future
research in rendering.
31.21 Exercises
Exercise 31.1: Suppose that tracing a ray in your scene takes time A on average,
while evaluating the BRDF on a pair of vectors takes time B . (a) In tracing N rays
from the eye using path tracing, using a fixed attenuation rate r (so that a path is
extended at each point with probability ( 1
r ) ), estimate the time taken in terms
of A and B (assume all other operations are free).
(b) Consider tracing N
/
/
2 rays from the single light
source in a scene using bidirectional path tracing; do the same computation.
Exercise 31.2: The radiosity equation
2 rays from the eye and N
( I
F ) b = e
(31.108)
has the form Mb = e , where M = I
F . In practice, the largest eigenvalue or
singular value of M is considerably less than 1.0; this means that powers of M
tend to grow rapidly smaller. That can be used to solve the equation relatively
quickly.
(a) Show that ( I
F ) 1 = I + F + F 2 +
...
by multiplying the right-hand side by
I
F and canceling. This sort of cancellation is valid only if the right-hand side is
an absolutely convergent series; fortunately, if the eigenvalues or singular values
are small, it is, justifying this step.
(b) Show that
b = e + Fe + F 2 e +
...
.
(31.109)
(c) Letting b 0 = e and b 1 = e + Fb 0 , and generally letting b k = e + Fb k 1 ,show
that b k is the sum of the first k + 1 terms of the right-hand side of the equation for
b , and that thus b k
. Thus, an algorithm for computing the radiosity
vector b is to start with b = e , and then multiply by F and add e repeatedly until
b has converged sufficiently.
(d) If we think of the i th entry of b as the radiosity at patch i , then multiplying
by F distributes this radiosity among all other patches. Rather than computing Fb
in its entirety, which can involve lots of multiplication, we can push the “unshot”
radiosity from a single patch through the matrix. Various algorithms exploit this
idea, seeking, for example, to push through the matrix the largest unshot radiosity.
Implement one of these for a 2D radiosity model, and see how its runtime and
b as k
→∞
 
Search WWH ::




Custom Search