Next: 4.7.2 Line Tracing
Up: 4.7 Other Work
Previous: 4.7 Other Work
Traditional approaches to rendering functions
sample the given function g at various
places, by computing .
After sampling, a rendering is produced by
appropriately connecting the samples.
We deam such approaches unsatisfactory,
as the produced graph may mislead the viewer
as to the nature of G.
Some examples follow:
denotes a rendering produced using
uniform floating-point sampling.
The first graph was produced using 100 samples;
the second and third were produced using 25
samples each. The third graph has a true rendering,
at the given resolution, which may be somewhat
misleading, although it would be quite natural
for a user to ``zoom'' into the atypical region.
Please see [24] for an extended discussion
of sampling techniques in rendering.
These approaches typically break down
when investigating minute details
of the graph, as the following renderings illustrate:
Such ineptitude at fine-scale detail may cause
large-scale features to be poorly rendered,
as a function may arbitrarily magnify regions.
Of course, sampling methods fare poorly when
interesting features of a graph occur between
floating-point coordinates; consider the following
renderings:
For the preceding example, we consider the general exponentiation
operator, which is defined for negative bases with
integral exponents: for example,
and .
All of the examples given in this section are
rendered correctly using the appropriate interval
techniques which were described in this chapter.
The renderings produced for the above examples
finish with each pixel determined exactly,
excepting that which displays fine-scale detail.
With that function, a course approximation
is generated, which contains the true curve.
An erstwhile interval-based renderer may
increase the precision of the underlying number system,
as needed.
More sophisticated sampling algorithms may be
similarly fooled, although with more convoluted
examples. Without assumptions as to the shape of G,
a finite number of floating-point samples gives
no information, other than the samples actually computed.
Samples computed using floating point rarely lie within G.
Next: 4.7.2 Line Tracing
Up: 4.7 Other Work
Previous: 4.7 Other Work