Individual feature elements should be designed in a manner such that they can delineate any feature an object may possess. However, expressiveness should not sacrifice simplicity, as complex features can still be matched by a group of simple elements. Hence, the defining attributes of our elements encode only the essential characteristics of features:
The reader familiar with the 2D technique of [2] will notice two differences between our 3D elements and a direct extention of 2D feature lines into 3D; in fact, these are the only differences as far as the warping algorithm is concerned.
First, in the 2D technique, the shape of a feature line's influence field is controlled by two manually specified parameters. Instead, we provide four simple types of influence fields --- point, segment, rectangle, and box --- thus allowing for a more intuitive, yet equally powerful, UI.
Figure 2: 2D warp artifacts (not to scale). (a) shows the result of
squeezing a circle using two feature lines placed on opposite sides of
the circle. The warped circle spills outside the corresponding,
closely spaced, lines. Similarly, in (b), the narrow ellipsoid with
two lines on either side does not expand to a circle when the lines
are drawn apart; we get instead three copies of the ellipsoid.
Second, our feature elements encode the 3D extent of a 3D feature via the scaling factors , , and ; by contrast, feature lines in [2] capture only the 1D extent of a 2D feature, in the direction of each feature line. These scaling factors introduce additional degrees of freedom for each feature element. In the majority of situations, these extra degrees have a minor effect on the warp and may thus be ignored. However, under extreme warps, they permit the user to solve the ghosting problem, documented in [2] and illustrated in figure 2. For instance, in part (b) of this example, the ellipsoid is replicated because each feature line requires that an unscaled ellipsoid appear by its side: the feature lines in [2] cannot specify any stretching in the perpendicular direction. However, in a 2D analogue of our technique, the user would use the lines' scaling factors to stretch the ellipsoid. First, the user would encode the ellipsoid's width in the scaling factors of the original feature lines. Then, in order to stretch the ellipsoid into a circle, the user would not only move the feature lines apart, but will also make the lines' scaling factors encode the desired new width of the ellipsoid. In fact, using our technique, a single feature line suffices to turn the ellipsoid into a circle.