Graphics Reference
In-Depth Information
subtended by patch k from the center of patch j is a good representation of the
solid angle subtended at any other point of patch j . That's fine when j and k are
distant, but when they're nearby (e.g., one is a piece of floor and another is a piece
of wall, and they share an edge) the assumption is no longer valid. The form-
factor computation must then be written out as an integral over all points of the
two patches, and even for simple geometries it has, in general, no simple expres-
sion. Schroeder [SH93] expresses this form factor in terms of (fairly) standard
functions, but the expression is too complex for practical use.
Second, meshing has a large impact on the quality of a radiosity solution; in
particular, if there are shadow edges in the scene, the final quality is far better if
the mesh edges are aligned with those shadow edges, or if the patches near those
edges are very small (so that they can effectively represent the rapid transition
in brightness near the edge). Lischinski et al. [LTG92] describe approaches to
precomputing meshes that are well adapted to representing the rapid transitions
that will appear during a radiosity computation.
A different approach to the meshing problem is to examine, for each patch, the
assumption of constant irradiance across the patch. We do this by evaluating the
irradiance at the corners of the patch and comparing them. If the difference is great
enough, we split the patch into two smaller patches and repeat, thus engaging in
progressive refinement. This approach is not guaranteed to work: It's possible
that, for some patch, the irradiance varies wildly across the patch but happens
to be the same at all corners; in this case, we should subdivide, but we will not.
One thing that's fortunate about this approach is that when we subdivide, there's
relatively little work to do: We need to compute the form factors for the newly
generated subpatches and remove the form factors for the patch that was split. We
also need to take the current surface-radiance estimate for the split patch and use
it to assign new values to the subpatches; it suffices to simply copy the old value
to the subpatches, although cleverer approaches may speed convergence.
Third, although radiosity, as we have described it, treats only pure-Lambertian
surfaces and emitters, one can generalize it in many directions: Instead of assum-
ing that outgoing radiance is independent of direction, one can build meshes in
both position and direction (i.e., subdivide the outgoing sphere at point C i into
small patches, on each of which the radiance is assumed constant); this allows
for more general reflectance functions, but it increases the size of the computa-
tion enormously. Alternatively, one can represent the hemispherical variation of
the emitted light in some other basis, such as spherical harmonics ; an expan-
sion in spherical harmonics is the higher-dimensional analogue of writing a peri-
odic function using a Fourier series. Ramamoorthi et al. [RH01] have used this
approach in studying light transport. In each case, specular reflections are diffi-
cult to handle: We either need very tiny patches on the sphere's surface, or we
need very high-degree spherical harmonics, both of which lead to an enormous
increase in computation. One approach to this problem is to separate out “the
specular part” of light transport into a separate pass. Hybrid radiosity/ray-tracing
approaches [WCG87] attempt to combine the two methods, but this approach to
rendering has largely given way to stochastic approaches in recent years.
Fourth, we've been a little unfair to radiosity. The simplification of the render-
ing equation under the assumption that all emittance and reflectance is Lambertian
is the true “radiosity equation.” It's quite separate from the division of the scene
into patches, and the resultant matrix equation. Nonetheless, the two are often dis-
cussed together, and the matrix form is often called the radiosity equation. Cohen
 
Search WWH ::




Custom Search