The algorithm was implemented in a matter of hours in an existing
ray tracer. The computations of b and the offset for the outer surface
are only a few extra lines of code. Values for
came out as
a side-effect of the intersection computations.
The ray tracer was approximately 20%
slower after the change. Most of this
change in runtime is caused by the increased number
of shadow-ray/bounding-volume tests resulting from the addition of
the outer objects.
The results are shown in Figure 4.
One reasonable concern about the algorithm is that its errors are highest for
small objects whose real shadows would have no umbra.
In Figure 4 this is the case for the small spheres.
In Figure 5 this is the case for
the finely tesselated legs, and the shadows are too prominent.
There are many plausible solutions to this problem, but even
for the difficult cases shown in the figures the naive algorithm
produces reasonable images.
Note that fine tesselations only cause this problem if the
entire tesselated object is small relative to the light.
There are no obvious dynamic artifacts in a real-time implementation of the soft-shadow algorithm on a 30 processor Origin 2000. The visual improvement caused by including soft shadows is even more apparent in the dynamic case. So although our algorithm is not designed to be accurate, it has large utilitarian benefits, particularly for animation and interactive applications. Because it does illumination and shading computations in software, it is also straightforward to use our method as a previewer with appropriate illumination levels and reflectance properties for global illumination programs.
|