Graphics Reference
In-Depth Information
Figure 7.16.
A vanishing Hessian case.
Figure 7.17.
A curtain fold example.
We have outlined the main idea behind Blinn's approach, but to implement it one
has to overcome a number of special problem cases often caused by denominators
vanishing in certain expressions. Some examples of these are:
Vanishing Hessians: See Figure 7.16. Here we need four edge trackers below a maximum,
rather than two. The hard part is to decide when such a phenomena occurs.
Curtain folds: See Figure 7.17. Here n z becomes tangent to a y-level curve. One would
need another pre-scan for such points, but Blinn avoids this via a heuristic.
Singularities intersecting singularities: This is a very general problem. An example of
this is where a strict local maximum lies on the boundary of a patch.
With regard to the speed of the algorithm, Blinn found that the average number
of iterations needed for the convergence of edge trackers was about 2.5. He was able
to improve this substantially by extrapolating in the u-v space: He saved the (u,v) value
from the previous scan line and used for an initial guess an extrapolation of the pre-
vious two values. This reduced the average number of iterations to less than 1.
To speed the x-scan Blinn found intersections by choosing a sample of points and
interpolating. This amounted to approximating level curves via polygonal lines. The
sample points were chosen by spacing them equally according to the angle of the
normal to the curve. Note that this clusters at places of high curvature. See Figure
Search WWH ::




Custom Search