Path Notation (2)
An accurate method must handle all four types : L (D|S|G)* E
Local Illumination Model : L (D|S|G) E
First, lets introduce some notation for paths. Each
path is terminated by the eye
and a light.
E - the eye.
L - the light.
Each bounce involves an interaction with a surface. We characterize the interaction
as either reflection or transmission. There are different types of reflection
and
transmission functions. At a high-level, we characterize them as
D - diffuse reflection or transmission
G - glossy reflection or transmission
S - specular reflection or refraction
Diffuse implies that light is equally likely to be scattered in any direction.
Specular
implies that there is a single direction; that is, given an incoming direction
there is
a unique outgoing direction. Finally, glossy is somewhere in between.
Particular ray-tracing techniques may be characterized by the paths that they
consider.
Appel Ray casting: E(D | G)L
Whitted Recursive ray tracing: E[S*](D | G)L
Kajiya Path Tracing: E[(D | G | S) + (D | G)]L
Goral Radiosity: ED*L
The set of traced paths are specified using regular expressions, as was first
proposed
by Shirley. Since all paths must involve a light L, the eye E, and at least
one
surface, all paths have length at least equal to 3.
A nice thing about this notation is that it is clear when certain types of paths
are not traced, and hence when certain types of light transport is not considered
by the algorithm. For example, Appels algorithm only traces paths of length
3,
ignoring longer paths; thus, only direct lighting is considered. Whitteds
algorithm
traces paths of any length, but all paths begin with a sequence of 0 or more
mirror
reflection and refraction steps. Thus, Whitteds technique ignores paths
such as
the following EDSDSL or E(D | G)* L. Distributed ray tracing and path tracing
includes multiple bounces involving non-specular scattering such as E(D | G)*
L.
However, even these methods ignore paths of the form E(D | G)S* L; that is,
multi-ple
specular bounces from the light source as in a caustic. Obviously, any technique
that ignores whole classes of paths will not correctly compute the solution
to the
rendering equation.
Radiosity : L D* E
-
very good at diffuse - diffuse
-
a two-pass algorithm can include specular to diffuse
-
radiosity is view-independent, specularity is not
Whitted Recursive Ray tracing: E S* (D|G) L
-
specular to specular handled well
-
diffuse to specular handled somewhat
-
specular to diffuse can be included using a two-pass method or by backwards
ray tracing
Combining Radiosity and Ray Tracing
-
A two-pass approach
-
Pass 1: enhanced radiosity to account for diffuse to diffuse and specular
to diffuse
-
Pass 2: diffuse to specular and specular to specular using enhanced
ray tracing
-
Why two passes?
-
view-independent specularity and view-dependent diffuse computations
are too expensive
-
a view-independent diffuse computation followed by a view-dependent
specular computation is doable
First Pass
- formalized by Rushmeier and Torrance
- accounts for ideal specular and ideal diffuse reflection
and transmission
- number of specular surfaces should be small
- derive the radiosity equation in terms of intensities

for an ideal diffuse surface

- This equation is extended to account for diffuse to
specular transfer and transmission
Diffuse Transmission
- (through a light shade, for example)
- assuming no specular interaction, we get

where Id,i is the diffuse transmittance for patch
i and Tij is transmission form factor
- Tij
- accounts for interaction between ideal diffuse
surfaces due to transmission
- called backwards diffuse form factor
- Tij computed by placing
a hemisphere over the back side of the surface, then performing the same
computation as for Fij.
Specular Transmission
- place a constraint that no two specular surfaces can
see each other
- then

- Tf,ijp is the window form
factor and accounts for the energy leaving patch p that is specularly
transmitted through j and reaches i
- [image: shows three patches p floating above
a patch j which is floating above patch i. Caption reads: Patches
p visible to i through j ]
- Tb,ijp is a similar quanitity
that accounts for transmission from p through j to the back
side of i
- These T form factors can be computed with the hemicube,
just as the F form factors are.
- [image: shows a patch i with a hemicube sitting
atop it. Floating above the hemicube is patch j. Above patch j
is patch p. Tf,ijp appears to be an area
on the hemicube, representing what is visible of patch p through patch
j onto patch i. ]
Specular Reflection
- use the same constraint that no two specular surfaces
can see each other, but contribute to interaction between patches.
- mirror form factors
- [image: Patch p is a mirror. To the right of
patch p, we have the real environment, which consists of patch
j and patch i. To the left of patch p, we have a virtual
environment representing what is seen in p's reflection. Patch
j', the reflection of patch j, sits in the virtual environment.
]
- Ff,ijp is the forward mirror
form factor
- Fb,ijp is the backward mirror
form factor
- using the mirror approach with virtual space, the specular
patch is treated as a specular tranmittor that receives light from the virtual
patch.
- mirror form factors are computed just as window form
factors, except virtual surfaces are used.
With these extensions, we can now account for:
- diffuse - diffuse (regular radiosity)
- specular - diffuse (extended radiosity à la
Rushmeier & Torrance
Once this pass is complete, we then perform the 2nd
pass to compute specular - specular and diffuse - specular
Specular - specular is given by ray tracing
For diffuse - specular, we would need to send out many
rays from the point through the hemisphere around the point, weight the rays
by the bidirectional specular reflectivity, then sum them together.
- [image: too complicated to describe, but you can look
at the photocopied notes if you have them ]
- the reflection frustrum is a square pyramid
- the end of the pyramid is divided into n x n pixels
(typically very low resolution - e.g. 10 x 10)
- Z-buffer is used on that face to determine visible
surfaces
- The specular contribution is the intensities of the
patches seen through the frustrum (as computed in pass 1)
- if the patch seen through the frustrum is specular,
the process is recursively repeated
- the incoming intensities can be weighted to approximate
the specular spread\