Title:

Kind
Code:

A1

Abstract:

Techniques for geometric deformations in computer graphics are described including a flexible and general modular methodology constructing, analyzing, and evaluating geometric warps and deformations. Described techniques include establishing a set of source/target features (and related information)or parameter set for controlling deformation of a graphical model; a set of strength fields are established for controlling how strongly the transformation caused by the mapping of source feature to target feature will be applied to model points. A set of weighting fields modulates the influence of multiple source/target feature mappings on model points. Also described are variations on this technique that allow achieving results similar to conventional method and additional functionality.—

Inventors:

Milliron, Timothy S. (Berkeley, CA, US)

Application Number:

10/602556

Publication Date:

03/25/2004

Filing Date:

06/23/2003

Export Citation:

Assignee:

MILLIRON TIMOTHY S.

Primary Class:

International Classes:

View Patent Images:

Related US Applications:

20070216665 | Tuning Dial User Interface | September, 2007 | Jha et al. |

20060007122 | Method of controlling cursor by mobile communication device | January, 2006 | Lai et al. |

20070268255 | Computer pointing device with laser safety apparatus | November, 2007 | Kuo |

20080068373 | FREE STYLE DEFORMATION | March, 2008 | Sendhoff et al. |

20060132482 | Method for inter-scene transitions | June, 2006 | Oh |

20080297514 | Interactive labyrinth curve generation and applications thereof | December, 2008 | Pedersen et al. |

20080266239 | Imaging device having display brightness control function | October, 2008 | Iwamoto |

20090228203 | Destination selection support device, methods, and programs | September, 2009 | Kawauchi |

20080150893 | TWO-FOOT OPERATED MOUSE | June, 2008 | Ofer |

20080231545 | VIDEO PICTURE MANAGEMENT EQUIPMENT AND METHOD FOR VIDEO PICTURE MANAGEMENT | September, 2008 | Gong |

20050231479 | Illumination spot alignment | October, 2005 | Xie et al. |

Primary Examiner:

CHOW, JEFFREY J

Attorney, Agent or Firm:

TOWNSEND AND TOWNSEND AND CREW, LLP (TWO EMBARCADERO CENTER, SAN FRANCISCO, CA, 94111-3834, US)

Claims:

1. A computer-implemented method for generating graphical warps or deformations through transformation of an undeformed model to a deformed model, said computer-implemented method comprising: receiving said undeformed model and a set of feature specifications each of said set of feature specifications comprising a source feature, a target feature, and related deformation parameters; receiving a set of transformations corresponding to said set of feature specifications and for mapping said source feature to said target feature in each of said set of feature specifications; receiving a set of strength fields corresponding to said set of feature specifications and defined over said undeformed model for scaling the magnitude of each of said set of transformations, establishing a set of scaled transformations; receiving a set of weighting fields corresponding to said set of feature specifications and defined over said undeformed model for determining the relative influence of said set of scaled transformations; computing a sum of said set of scaled transformations weighted by said set of weighting fields, for deforming said undeformed model to generate said deformed model; and returning said deformed model.

2. The computer-implemented method according to claim 1 wherein at least one of said set of feature specifications is continuous and has corresponding parameterized strength field, transformation, and weighting field, and further comprising: receiving a sampling function for discretizing said parameterized transformation and sampling said strength field and said weighting field; computing a discretized transformation, a sampled strength field, and a sampled weighting field with said sampling function; and wherein said step of computing an sum of said set of scaled transformations employs said discretized transformation, said sampled strength field, and said sampled weighting field.

3. The computer-implemented method according to claim 2 wherein said set of feature specifications, said set of transformations, said set of strength fields, said set of weighting fields, and said sampling function are received by a combined function that computes said discretized transformation, said sampled strength field, and said sampled weighting field.

4. The computer-implemented method according to claim 1 wherein: said set of feature specifications comprises a plurality of line segment features; said set of transformations corresponding to said plurality of line segment features map source coordinate frames to target coordinate frames; and said set of weighting fields corresponding said plurality of line segment features fall off with distance.

5. The computer-implemented method according to claim 4 wherein: said set of weighting fields give influence to line segment features in said plurality of line segment features in relation to their length.

6. The computer-implemented method according to claim 4 wherein: said source coordinate frames comprise a constrained basis vector and an unconstrained basis vector and wherein said unconstrained basis vector is selected responsive to a weighted sum of the vectors perpendicular to the constrained basis vector for each of said target coordinate frames.

7. The computer-implemented method according to claim 1 wherein: said set of feature specifications comprises control points in an at least two dimensional lattice; said at least two dimensional lattice having an associated local coordinate system; said set of weighting fields corresponding to said control points comprise Bernstein polynomials with arguments comprising points of said undeformed model represented in said local coordinate system.

8. The computer-implemented method according to claim 1 wherein: said set of feature specifications comprises an oriented point in an least two dimensional lattice; said at least two dimensional lattice having an associated local coordinate system; the transformation in said set of transformations corresponding to said oriented maps a source coordinate frame to a target coordinate frames; and said set of weighting fields corresponding to said oriented points comprise Bernstein polynomials with arguments comprising points of said undeformed model represented in said local coordinate system.

9. The computer-implemented method according to claim 1 wherein: said set of transformations comprises a geometrically parameterized transformation.

10. The computer-implemented method according to claim 9 wherein: said set of transformations comprises plural geometrically parameterized transformations; and said set of strength fields modulate said plural geometrically parameterized transformations.

11. The computer-implemented method according to claim 10 wherein: said set of weighting fields blend said plural geometrically parameterized transformations.

12. The computer-implemented method according to claim 1 wherein: at least one of said set of feature specifications comprises a source curve and a target curve; corresponding members of said set of transformations comprise a composition of a translation from points along said source curve to points along said target curve, a rotation taking the tangent at said points along said source curve to the tangent at said points along said target curve, and a scale centered at said points along said source curve; corresponding members of said set of strength fields comprise a falloff function having a domain and a range and monotonically decreasing over said range, and wherein over at least a portion of said domain arguments of said falloff function comprise a distance between points of said undeformed model and point along said source curve and a rate of falloff for said distance. corresponding members of said set of weighting fields comprise a scaled displacement function having a domain and a range, wherein for at least a portion of said domain said scaled displacement function comprises a power of the displacement of elements of said undeformed model by said corresponding members of said set of transformations.

13. The computer-implemented method according to claim 12 wherein said scaled displacement function comprises a power of the displacement of elements of said undeformed model by said corresponding members of said set of transformations for the entirety of said domain.

14. The computer-implemented method according to claim 1 wherein: said undeformed model comprises control vertices of a fine surface model; and at least one of said set of feature specifications comprise: a source position and a target position of one or more vertices of a coarse deformation mesh configured for deformation of said fine surface model, and a set of edges incident on said one or more vertices.

15. The computer-implemented method according to claim 14 wherein: corresponding members of said set of transformations comprise a composition of: a translation mapping said source.position to said target position, and at least an approximation of a.mapping of said set of edges in said undeformed model to said deformed model.

16. The computer-implemented method according to claim 15 wherein: corresponding members of said set of weighting fields comprise a falloff function, said falloff function substantially zero at a distal end of each of said set edges incident on said one or more vertices, and said falloff function substantially at its maximum value for arguments proximate to said source positions of said control vertices.

17. The computer-implemented method according to claim 1 wherein: said undeformed model comprises control vertices of a surface for deformation, wherein source and target features are parameterized as a function that returns a tuple comprising a point and a vector normal to said point; at least one of said set of feature specifications comprises a source region and a target region; corresponding members of said set of transformations comprise a composition of: a translation mapping points on said source region to points on said target region, and a rotation taking said vector normal to said points on said source region to said vector normal to said points on said target region of said surface.

18. The computer-implemented method according to claim 17 wherein corresponding members of said set of strength fields localize the effect of said set of transformations around said source surface region.

19. The computer-implemented method according to claim 18 wherein: corresponding members of said set of weighting fields decrease monotonically with corresponding members of said set of strength fields and wherein said set of weighting fields decrease responsive to: a distance between control vertices of said surface for deformation and said point on said surface, and a range for limiting the region of said weighting field, and a rate for controlling the rate of decrease of said weighting field.

20. The computer-implemented method according to claim 1 wherein: one of said set of feature specifications act with substantially full strength across said undeformed model and corresponding the member of said set of weighting fields dominates weighting contributions of other members of said set of weighting fields.

Description:

[0001] The invention relates generally to computer graphics and animation and more particularly to techniques for deforming or warping graphical objects.

[0002] Warping or deforming (the terms are used interchangeably) graphical models is an important operation in many areas of computer graphics. Deformation of planar curves is a basic operation in 2-D cartoon animation as well as in digital publishing. Surface and solid warping find widespread application solid and geometric model manipulation as well as 3-D animation. Many significant industries such as portions the entertainment industry and the medical imaging industry rely heavily on suites of computer graphics tools that include warping techniques.

[0003] There are many computer-implemented warping techniques known in the art. Indeed, the literature is heavily populated with niche solutions to seemingly separate sets of problems. There is a need for a warping technique that addresses the general problems encountered in warp design and provides a general solution framework flexible enough, not only for warp designers to rapidly develop new warps, but also for them to achieve warp results comparable to the existing niche solutions when desired. Such a general solution technique would facilitate the comparison of warps, make key aspects of warps easier for the warp designer to understand, and allow a warp designer to increase his or her efficiency by more readily integrating existing solutions for particular aspects of a warp. Ideally, such a general solution technique would not compromise on the warp designer's ability to achieve the same warp results as could be obtained with conventional solutions. Still further, it would be desirable for such a general solution technique to enable warp results unobtainable with conventional solutions. Also it would be desirable for such a general solution technique to modify existing warping techniques to add new functionality. Additionally it would be desirable for such a general solution technique to faciliate analysis of warps for ascertaining desirable mathematical properties.

[0004] One such exemplary conventional solution are free form deformations (“FFD”s). Typically FFDs are manipulated by editing of positions of control points in a uniform 3-D lattice imposed on a parallelepiped volume. While this technique yields some desirable mathematical properties, it is can often be highly restrictive to a warp designer. For instance, with conventional FFDs, it is not practicable to create a deformation with a rotation effect centered around a single control point. To achieve such an effect with a conventional FFD, a higher resolution control lattice must typically be used; however, this too is undesirable as it complicates the deformation interface over the model. Thus it would be desirable for a warping system to exist that allowed for more complex warping effects to be easily obtained in conjunction with creating results similar to FFD-type warps.

[0005] Another exemplary conventional solution are image warps such as those described by Beier and Neely's, Feature-based image metamorphosis,

[0006] Still another exemplary conventional technique is the framework taught by Singh and Fume in Wires: A geometric deformation technique, SIGGRAPH '98

[0007] Frequently variations on a (typically complex) surface are desired. Direct manipulation of the surface itself may be too time consuming. There are a number of conventional multiresolution editing schemes that provide some capability for efficient surface variation. However the conventional methods do allow adequate flexibility (for instance they often restrict the relationship between the fine surface model, e.g., a vertex mesh, and the control model in terms of topology or mesh connectivity). While some conventional methods do allow control models of arbitrary topology, such methods may only approximate the edited control points (rather than being interpolating). However, interpolating warps frequently can provide a more intuitive user interface. Accordingly a need exists for an interpolating warp that may be used to conveniently deform a more complex surface of arbitrary topology.

[0008] Also, warp designers commonly desire to deform a first surface by mapping regions of the first surface to regions of a second surface. For instance, in computer animation, when the first surface is impacted by the second surface, the first surface may be stretched out of shape. Some physics-based systems that implement this behavior do exist, however such systems are frequently inadequate for production of exaggerated or fictional animation effects. Thus it would be helpful for a warping technique to exist that facilitated deformations of surface regions.

[0009] In order to provide solutions to these and other objectives, one aspect of the present invention are methods for generating graphical warps or deformations through feature-based transformation of an undeformed model to create a deformed model. An illustrative method includes receiving the undeformed model and a set of feature specifications each of the set of feature specifications including a source feature, a target feature, and related deformation parameters. The set of feature specifications contains elements for controlling the deformation of the undeformed model. An additional part of this illustrative method includes receiving a set of transformations corresponding to the set of feature specifications and for mapping the source feature to the target feature in each of the set of feature specifications, and receiving a set of strength fields corresponding to the set of feature specifications and defined over the undeformed model for scaling the magnitude of each of the set of transformations, establishing a set of scaled transformations. The illustrative method also includes receiving a set of weighting fields corresponding to the set of feature specifications and defined over the undeformed model for determining the relative influence of the set of scaled transformations; computing a sum of the set of scaled transformations, weighted by the set of weighting fields, creating a deforming function for deforming the undeformed model to generate the deformed model; and returning the deformed model.

[0010] In a variation of the illustrative method, at least one of the set of feature specifications is continuous and has corresponding parameterized strength field, transformation, and weighting field. In this variation, the illustrative method also includes receiving a sampling function for discretizing the transformation and sampling strength and weighting fields and computing a discretized transformation, a sampled strength field, and a sampled weighting field with the sampling function. In this instance, the step of computing a sum of the set of scaled transformations employs the discretized transformation, the sampled strength field, and the sampled weighting field.

[0011] Still further, the set of feature specifications, the set of transformations, the set of strength fields, the set of weighting fields, and the sampling function can be received by a combined function that computes the discretized transformation, the sampled strength field, and the sampled weighting field.

[0012] It should be noted that the present invention is operable with geometric deformations in a general manner. In particular, the present invention is not limited to feature-based deformations, although it may obtain particular benefits with feature-based deformations.

[0013] The illustrative method operates with a wide variety of features and conveniently generates many useful deformations. In one version, the set of feature specifications includes a plurality of line segment features; the set of transformations corresponding to the plurality of line segment features map source coordinate frames to target coordinate frames; and the set of weighting fields corresponding to the plurality of line segment features fall off with distance. In some instances, the set of weighting fields give influence to line segment features in the plurality of line segment features in relation to their length. In some instances, the source coordinate frames include a constrained basis vector and an unconstrained basis vector and the unconstrained basis vector is selected responsive to a weighted sum of the vectors perpendicular to the constrained basis vector for each of said target coordinate frames.

[0014] In another version, the set of feature specifications includes control points in an at least two dimensional lattice. The at least two dimensional lattice has an associated local coordinate system, and the set of weighting fields corresponding to the control points include Bernstein polynomials with their arguments as points of the undeformed model represented in the local coordinate system. In a variation, oriented points are used.

[0015] In yet another version, at least one of said set of feature specifications includes a source curve and a target curve. Here, corresponding members of the set of parameterized transformations include a composition of a translation from points along the source curve to corresponding points along the target curve, a rotation taking the tangent at the points along the source curve to the tangent at the points along the target curve, and a scale centered at the points along the source curve. In addition, corresponding members of said set of strength fields include a falloff function having a domain and a range and monotonically decreasing over the range. Over at least a portion of the domain (and sometimes over the entirety), arguments of the falloff function include a distance between elements of the undeformed model and point along the source curve and a rate of falloff for the distance. Also, corresponding members of the set of weighting fields include a scaled displacement function having a domain and a range, wherein for at least a portion of the domain the scaled displacement function includes a power of the displacement of elements of said undeformed model by the corresponding members of said set of transformations.

[0016] In another version, the undeformed model includes control vertices of a fine detail model. In this instance, and at least one of the set of feature specifications may include a source position and a target position of one or more vertices of a coarse deformation mesh. The coarse deformation mesh may be configured so that deformation of the fine surface model may be obtained by deformation of the coarse deformation mesh. In addition, the set of feature specifications includes one or more sets of edges incident on the one or more vertices.

[0017] In still another version, the undeformed model includes control vertices of a surface for deformation. No representation of the surface is essential and any point valued model could be used. Source and target features are surface regions (surfaces or parts thereof) described as aa function that evaluates to tuples of a point on the feature and a vector normal to the point on the source or target surface region. The source and target suface regions need not be subsets of the suface model. Corresponding members of the set of transformations include a composition of a translation mapping points on the source region of the surface to points on the target region of the surface, and a rotation taking the vector normal to the points on the source region to the vector normal to the points on the target region of the surface. In a variation, corresponding members of the set of strength fields localize the effect of the set of transformations around the source surface region. In addition, corresponding members of the set of weighting fields decrease monotonically with corresponding members of said set of strength fields and the set of weighting fields decrease responsive to (a) a distance between control vertices of the surface for deformation and said point on said surface, (b) a range for limiting the region of the weighting field, and (c) a rate for controlling the rate of decrease of the weighting field.

[0018] Another aspect of the invention is computing machinery configured to carrying on the methods in accordance with the invention including, for instance, the above-described methods. Still another aspect is a computer program product including a computer readable medium having computer program code encoded thereon able to configure computing machinery to carry on methods in accordance with the invention.

[0019] These and other features, aspects, and advantages of the present invention will become better understood with regard to the following description, appended claims, and accompanying drawings.

[0020] The file of this patent contains at least one drawing executed in color. Copies of this patent with color drawing(s) will be provided by the Patent and Trademark Office upon request and payment of the necessary fee. Unless otherwise noted, in the color drawings, source features are indicated in red, and target features in blue.

[0021]

[0022]

[0023]

[0024]

[0025]

[0026]

[0027]

[0028]

[0029]

[0030]

[0031]

[0032]

[0033]

[0034]

[0035]

[0036]

[0037]

[0038]

[0039]

[0040]

[0041]

[0042]

[0043]

[0044]

[0045]

[0046]

[0047]

[0048]

[0049]

[0050]

[0051]

[0052]

[0053]

[0054]

[0055]

[0056]

[0057]

[0058]

[0059]

[0060]

[0061]

[0062] Equations

[0063]

_{ijk}_{ijk}_{ijk}

_{ijk}_{ijk}_{ijk }

_{ijk}

_{ijk}_{i}^{l}_{x}_{j}^{m}_{y}_{k}^{n}_{z}

_{i}_{i}_{i}_{i}_{i}_{i}

_{i}_{i}_{i }

_{i}

[0064]

_{i}_{i}_{i}_{i}_{i}_{i}_{i}

_{i}

[0065]

_{i}_{i}_{i}^{m}^{i }

[0066]

_{i}_{i}_{i}_{i}_{i}

_{i}

_{i}

[0067]

_{i}_{i}_{i}_{i}_{i}_{i}

_{i}

_{i}_{α}_{i}_{β}_{i}_{i}

[0068]

[0069] In preferred embodiments, methods according to the invention are computerimplemented.

[0070] The computer system

[0071] In an illustrative embodiment of the invention, computer program code configures a graphics computer system such as the computer system

[0072] Any of many conventional model representations may be used depending on the type of model being warped. In some embodiments a vertex mesh is used, in others an image is used. When a vertex mesh is used, U could be the set of n vertex indices 1 . . . n and M(u) is the vertex indexed by uεU. In vertex mesh embodiments, the warp will move the vertices to new positions in space. The mesh may represent, for instance, a polygonal model or the control vertices of a smooth surface. When an image is used, U could be the 2-D plane, and M(u)=u is defined over the plane. The warp will create a mapping of pixel coordinates between the original and deformed images, for subsequent sampling of the image data. One skilled in the art having the benefit of this disclosure will readily appreciate other model representations operable with features of the invention and accordingly are within the scope and spirit of the invention.

[0073] Illustrative embodiments of invention are explicitly feature based, however this is not fundamental. Rather, the present invention is generally operable with the broader class of geometric deformations.

[0074] In accordance with an illustrative embodiment, output of a warp may be expressed as a deforming function, D(u,M), that is a transformation-valued function defined on the domain U and taking a value uεU and the model M as input. To compute the warped model M′ that is a point-valued function defined on the domain U, as is M(u), the deforming function is evaluated at u and applied to the point given by evaluating the model at u. For clarification of exposition, it is helpful to denote the application of a translation T to a point p by T<p>. Notationally:

[0075] One simple deforming function convenient in some instances is a displacemen model. For instance, the output of the warp may be generated with a vector-valued function defined on the domain U. The displacement model can then be added to the undeformed model to yield the deformed model.

[0076] Further in accordance with the illustrative embodiment, a set of feature specifications is used to represent mappings from source to target features. Each of the set of feature specifications comprises a source feature, a target feature, and related deformation parameters for controlling deformation caused by the feature specification. In some instances the number of related deformation parameters may be zero. Again, as noted above, some embodiments of the invention are not feature based and, in such case, a parameter set is used for controlling the warp.

[0077] The invention is not limited to particular types of features. In preferred embodiments a warp designer selects the set of feature specifications; this aspect is limited only by the warp designer's ingenuity. Further, source and target features need not be part of the undeformed or deformed model. Frequently, however, they are indicident on model(s).

[0078] Point Features

[0079] A simple version of the invention will now be described to illustrate basic aspects of the invention. In this version the set of feature specifications consists of a single element and the single element is a point feature. The warp maps the point feature, from its source position, P, to its target position, P′. This transformation is a constant translation, T=P′−P. Equation 2 represents the resulting deforming function:

[0080]

[0081] The translation described above may provide more desirable warping when its effect is varied across the undeformed model. A set of strength fields corresponding to the set of feature specifications are also defined over the undeformed model. The set of strength fields operates in computing the deformed model by scaling the magnitude of each of the set of transformations over elements of the undeformed model. Notationally, S(u,M) denotes a strength field for u in U. Strength fields are parameterized on the model M, however it may be assumed for the purposes of coxmputing the deformation that the model is available to the set of strength fields and the simpler notation S(u) interchangeably used for clarity. In preferred versions, S(u) is a scalar-valued function taking on values in the range [0,1] for any u in U.

[0082] The multiplication of a transformation, T, by a scalar s is denoted s·T. Modifying equation (2) to include the strength field yields:

[0083]

[0084] The effect of the strength field can be appreciated with reference to

[0085] More generally, aspects of this illustrative embodiment are also applicable when there are plural features. Notationally, assuming, for instance, a set point features of cardinality n indexed by i, the corresponding said set of feature specifications F may be written F_{i}_{i}_{i}_{i}_{i}_{i}_{i }

[0086] When the set of strength fields and the corresponding set of transformations contain plural elements, a set of weighting fields is introduced. The set ofweighting fields corresponds to the set of feature specifications. The set of weighting fields is also defined over the undeformed model, and performs the function of determining the relative influence of a set of scaled transformations over elements in the undeformed model. A scalar value weighting field is conveniently denoted W_{i}_{i}

[0087] The set of weighting fields may be included in the equation for computing the deforming function at each model-domain point u in U as a weighted averaged of the scaled transformations as shown in Equation 4:

[0088] In preferred versions, normalized weights are used for the set of weighting fields and (using the simpler notation)

[0089]

[0090] The effect of the weighting field can be appreciated with reference to

[0091] Oriented Points

[0092] As one of skill in the art will by now appreciate, the invention encompasses more complex features than the point features of the simple version described up to now. Another illustrative feature is an oriented point, that is a point with local coordinate frames. Notationally, f_{i }_{i }

_{i}_{i}_{i}

[0093] Each of the set of feature specifications defines a transformation that maps the source coordinate frame to the target coordinate frame:

_{i}_{i}_{i }

[0094] The warp designer may describe T_{i }

[0095]

[0096] Considering

[0097] As described above in connection with point features, strength field S_{i}_{i }_{i}

[0098] A first method of defining the scaled transformation, is to linearly interpolate between the identity transformation I and the transformation T. That is s·T=sT+(1−s)I where T and I are the matrix representations of the transformations T and I, respectively. With this method, the effect of applying s·T to a point P is to multiply the displacement that would have been caused by T, so that (s·T)(P)=P+s(T<P>−P) This is hereinafter referred to as the “Displacement Method”.

[0099] A second method of defining the scaled transformation is applicable, for instance, when the transformation is defined as a composition (the “Composition method”). For instance if the transformation were defined as an ordered composition of translate, rotate, scale, and shear components, the scaled transformationcould be defined as follows: scale each component of T by s and recompose to produce a new transformation, T′ and then apply T′ to p.

[0100] As noted above in the discussion of weighting fields it is desirable to combine the effects of multiple feature specifications at each model point by computing a weighted average of the transformations they imply. In order to do this for our more general transformations, we must not only define the result of the multiplication s·T, but also the result of the addition of transformations. Just as there are many ways of defining the multiplication of a transformation by a scalar, there are many ways to define this addition.

[0101] In an illustrative embodiment, matrix addition is used for this addition. Namely, the matrix representations of the transformations are added. If the Displacement Method is used to compute the product of weights and transformations, the computed weighted average is equivalent to a weighted average of the displacements caused by the transformations. The product of the normalized weights ŵ_{i}_{i}_{i}_{i}_{i}

[0102] Equation (4) still defines the deforming function for this formulation, but now interpret T_{i }_{i}_{i}

[0103] Continuous Features

[0104] Up to this point the features shown in the figures have been discrete: points or oriented points. Aspects of the invention apply to continuous features including, for instance curves and surfaces, as well. For purposes of exposition, assume that a source curve feature, C_{i}_{i}_{i}

_{i}_{i}_{i}

[0105] and represents continuous quantities parameterized on the domain V_{i}_{i }_{i}_{i}_{i}_{i}_{i}

[0106] The deforming function is computed as before as a weighted average of a (now infinite) set of scaled transformations. With a collection of transformation continuums (one for each feature specification) the weighted average becomes a summation of integrals as shown in Equation 5:

[0107] In some instances, the V_{i }

[0108] _{i}

_{i}_{i}

[0109] R is the smallest rotation that takes the vector

[0110] and

[0111] S is a uniform scale of magnitude x_{i }_{i}

[0112] The strength fields and weighting fields are as described below in connection with Equations 9a-9f.

[0113] The resulting deformed model is shown in

[0114] A warp designer may use various combinations of discrete and continuous features in any particular model deformation application. In a typical practical embodiment, the warp designer will desire that plural features be used and that at least one of the plural features is continuous.

[0115]

[0116] Next, a ‘continuous warp computation’ process

[0117] In other embodiments, the integrals in Equation 5 are not directly computed.

[0118] Conveniently, the construction function

[0119] Independent of construction function, the warp designer preferably specifies a sampling algorithm used by the sampling function

[0120] These discretized quantities are passed to a ‘discretized warp computation’ process

[0121] Programmatically, it is frequently convenient to merge the sampling function

[0122]

[0123] The techniques previously described for geometric warps and deformations provide a powerful and flexible general framework for designing and creating warps and deformations. The result of several widely-used warping and deforming techniques may be obtained in a new and improved manner using our techniques.

[0124] One frequently-desired warping result is the free form deformation of a 2 or 3-D graphical object. In one existing technique—that of Sederberg and Parry in

[0125] A similar warping result may be obtained with the present new techniques, and these techniques provide additional warping capability not found in conventional free form deformation techniques. In one version, the model M(u) in a freeform deformation (“FFD”) is any point-valued set of data. Other embodiments use, for instance, polygonal, solid, or parametric models. A 3-D grid of (l+1)×(m+1)×(n+1) control points located in a local coordinate system imposed on a parallelepiped region acts as a set of features. For geometric clarity tnivariate indices, ijk, are used although, in practice it is preferred to map the indexing of the control points to a univariate index; any of several well-known transforms could be used. The local coordinate system has an origin, O, and three basis vectors, X, Y, and Z. The location of the ijk^{th }_{ijk }

[0126] for 0≦i≦l, 0≦j≦m, 0≦k≦n,. A set of transformations is established as simple translations T: P′_{ijk}_{ijk}

[0127] In summary:

_{ijk}_{ijk}_{ijk}

_{ijk}_{ijk}_{ijk }

_{ijk}

_{ijk}_{i}^{l}_{x}_{j}^{m}_{y}_{k}^{n}_{z}

[0128] where M_{x}_{y}_{z}

[0129] One of skill in the art having the benefit of this disclosure will quickly appreciate applicability of the above-described embodiment to numerous variations of conventional FFD techniques. For instance, trivariate b-spline polynomials could be used in place of Bernestein polynomials for the set of weighting fields to obtain local control; layered applications of successively higher resolution lattices could be used; lattices of arbitrary topology could be used. Further, a direct manipulation interface could receive user input and a solution for the corresponding FFD specification could be obtained therefrom. See Ron MacCracken and Kenneth Joy, Free-From deformation with lattices of arbitrary topology, SIGGRAPH 96

[0130] While results conventionally associated with FFD may be obtained with the abovedescribed illustrative embodiment, some variations can also obtain results that are unobtainable with conventional techniques. For instance, given a fixed-density control lattice, it is not possible with conventional FFD techniques to conveniently create a deformation with a rotational effect centered around a single control point. When using conventional FFD techniques, to obtain the desired result, a higher resolution control lattice must be used at the expense of increased computational cost and/or user intervention. Referring to

[0131] A solution to this problem can be provided with our techniques by substituting more complex features for the simple point features of conventional FFD techniques. In one illustrative variation, oriented points are used. In this variant, the warp designer manipulates the deformation by adjusting a lattice of local coordinate frames each with an origin and basis vectors. The warp is altered so that the feature specifications include source and target coordinate frames in lieu of source and target points. The transformations now take source coordinate frames to target coordinate frames. See, e.g., dicussion below in connection with Equation 8b which may be used).

[0132] In accordance with this variant, use of oriented points to obtain a local rotation is shown in

[0133] Another frequently-desired warping result is the image warp. In one existing technique, that of Beier and Neely in

[0134] A similar warping result may be obtained with the present new techniques and these techniques provide additional warping capability not found in conventional image warp techniques. In one illustrative embodiment, the warp acts as an inverse mapping—operating on pixels of the deformed model. U is defined as the pixel coordinates of the destination image (the undeformed model) and M(u)=u. With inverse mapping, the feature specifications are source and target line segments in the destination and source images, respectively. Each of a set of feature specifications is described as a pair of line segments, L_{i }_{i}_{i}_{i}_{i}_{1}_{i}_{i}_{i }_{i }_{i }_{i}_{i}_{i }_{i}_{i }

_{i}_{i}_{i}_{i}_{i}_{i}

_{i}_{i}_{i}

_{i}

[0135]

[0136] where length is the length of the line segment L_{i }_{i}

[0137]

[0138] Conventional 2-D image warping techniques have been extended to the 3-D volume domain. See Apostolos Lerios et al., Feature-Based volume metamorphosis, in

[0139] While results conventionally associated with image warping may be obtained with the above-described illustrative embodiment, versions of the invention can also obtain results that are unobtainable with conventional techniques. For instance, when two line-segment features “squeeze” the image, the resulting deformed image can exhibit spatial buckling artifacts where the 2-D plane folds back upon itself.

[0140] This buckling behavior may be understood as a failure in conventional techniques to consider global deformation effects. For instance, Beier & Neely assume that the transformation for a line-segment feature should not deform the image in the direction perpendicular to the line-segment. For a single line-segment, this assumption is reasonable and results in the expected image transformation. However, for multiple line-segments, this assumption can lead to nearby transformations that conflict dramatically enough to cause buckling artifacts such as those shown in

[0141] A principle applicable for solving this problem is for the basis vector along the feature to be transformed in accordance with the feature specification while the other basis vector remains unconstrained. Correa et al., Texture mapping for cell animation,

[0142] An illustrative variant of the invention uses similar approach is used to compute the target value of the vector perpendicular to each line segment in the source coordinate frame. In this instance, feature specifications correspond to transformations as follows. Each of the set of feature specifications is as described above:

_{i}_{i}_{i}_{i}_{i}_{i}

[0143] Where L_{i }_{l }_{i}_{i }

_{i}_{i}_{i}

[0144] f has origin P_{i}_{i}_{i}_{i }_{i}_{i }_{i}_{i }

[0145] where dist is the minimum distance between the line segments L_{i }_{i}_{j }_{j }_{j}_{ij }_{i }_{i}

[0146]

[0147] Other desirable deformations may be defined by geometric parameters. In one variation of the present invention, deformations are so defined and vary in a geometrically meaningful way including, for instance, along an axis. In this variation, for each model point, a single transformation is selected and the deformation computed by applying this transformation to the model point. One skilled in the art will readily appreciate the flexibility and power the present invention adds to previous geometric deformation techniques. For instance, Barr,

[0148] A taper can illustrate this variation; one skilled in the art having the benefit of this disclosure will appreciate may others. The parameter set for a taper deformation contains a single user-defined scalar-valued function. Manipulation of this function controls the deformation. The function has an intuitive geometric interpretation: its input is a value along, e.g., the z-axis, and its output is the amount by which the deformation will scale the model in the direction orthogonal to the z-axis. Denoting P the parameter set, notationally this variation may be represented as:

[0149] Methods for scaling the effect of the transformation include both the Displacement method and the Composition method. Other desirable warping operations including, for instance, twisting, and bending of graphical objects (and combinations thereof) could also be used.

[0150] Yet another desirable warping capability is the manipulation of surface geometry of a 3-D object for modeling and animation. One conventional technique, known as “Wires” is described by Singh and Fiume,

[0151] The features for the warp are source and destination curves, and their related scalar parameters. A feature specification represents each wire:

_{i}_{i}_{i}_{i}_{i}_{i}_{i}

[0152] where C_{i }_{i }_{i }_{i}_{i}_{i }^{+}^{l }_{i}_{i}

[0153] A feature specification, F_{i}_{i}

_{i}

[0154] where:

_{i}_{i}

[0155] R is the smallest rotation that takes the vector

[0156] S is a uniform scale of magnitude s_{i }_{i }_{i }_{i}_{i}

[0157] A bounding region for the strength field may also be defined by adding an additional feature. Letting D_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i }_{i }_{i }

[0158] where α is (D_{i}^{M(u)}_{i}_{i}_{i }_{i}^{M(u)}_{i}

[0159] The set of weighting fields corresponding to the set of feature specifications is selected to warp each model point, M(u) based on the parameterized transformation value at the nearest location on the reference curve; if points are equidistant, preferably the one with the smaller parameter value is selected. For feature specification, F_{i}_{i}

[0160] where m_{i }

[0161] In some instances, the warp designer desires that a curve be marked as an “anchor.” To accommodate this aspect, a Boolean parameter and a user-specified scalar parameter, k_{i }_{i}_{i}

[0162] The embodiments just described used the Composition Method for determining the set of scaled transformations. In other embodiments, the Displacement Method could be used. If the Displacement Method were used, results similar to those described in Lazarus et al., Axial deformations: an intuitive deformation technique, Computer-Aided Design, 26(8):607-613, August 1994, could be obtained. In addition, the present technique can be used to carry on curve based warps for cel animation and produce results similar to those described, for instance in Correa et al.

[0163] Still further, in certain cases “Wires”-type deformations can result in buckling and tearing artifacts. This occurs when a given wire's reference curve is shaped so that it is equidistant from a set of points in the model (the “Medial Set”) and different parts of the curve specify competing deformations of the Medial Set. Such artifacts are easily understood and remedied with some versions of the invention.

[0164] Recall, above, that weighting fields for wires were discontinuous, containing singularities to ensure that only the nearest point on a curve contributes to the deformation of a model point (see Equation 9e). The resulting warp, which is a function of these fields, will also contain discontinuities. Removing discontinuities in the weighting fields, successfully removes the discontinuities in the warp itself.

[0165] In one version of the invention, in order to remove such discontinuities, the weighting fields for an ordinary wire are taken as:

_{i}_{i}_{i}^{m}_{i }

[0166] and if the curve is tagged as an “anchor” the weighting field is taken as:

[0167] The parameters k_{i }_{i }

[0168] Using the weighting fields in Equation 9g above, the discontinuities can be removed. The method now approximates an integral taken along the curve, rather than considering only a single sample on the curve. This incurs an added computational cost: every transformation sample along each wire curve now contributes to the deformation of each model point. Thus, rather than sampling the curve exactly once for every model point as in the original method, one conveniently integrates along the curve or, in preferred embodiments, approximate the integral by sampling. The deformed model in

[0169] Another illustrative aspect of the invention provides a mesh warp. In this instance, a fine surface model is deformable through the manipulation of a coarse surface mesh.

[0170] Letting M(u) be a set of control vertices that define the fine surface model, indexed by uεU={1, . . . , }. A set of feature specifications is taken as vertices of a coarse deformation mesh assumed to be in close proximity to the surface. Each of the set of feature specifications encodes a vertex point's position and its incident edges. That is, for vertex i in the mesh, a feature specification is:

_{i}_{i}_{i}_{i}_{i}

[0171] where P_{i }_{i }_{i }_{i }_{ij}_{i }_{i }_{i}_{i }_{i}

[0172] Feature specifications have transformation compositions:

_{i}

[0173] where T=P′_{i}_{i }_{i }_{i}_{i }_{i }_{i }_{i }^{+}_{i }_{i }^{+}

[0174] In this instance, it is desirable that a rigid transformation applied to the entire mesh to result in the same rigid transformation of the surface. One way of achieving this is to for a strength field to be set to unity:

_{i}

[0175] Here, it is also desirable that a weighting field should be relatively large near the source feature, P_{i}_{ij}_{i }_{j }_{ij}

[0176] where f_{ab }_{im }_{i }_{i}

[0177] In cloth dynamics simulation, unwanted object intersections sometimes occur due to limitations and simplifications in the simulating technique. Frequently, rather than revisiting the simulation, it would be desirable to perform a slight ad hoc deformation on the simulated cloth to eliminate the intersection. Using our mesh warp, a low resolution mesh may be created from vertices of the cloth, the low resolution mesh may be manipulated to adjust the complex cloth mesh, for instance by manipulation of the vertices, and the corrected simulated cloth created from the adjusted low resolution mesh.

[0178]

[0179] Frequently, warp designers desire to create avariation of a complex surface model while still retaining the same basic shape of the surface. Simple transformation mechanisms are useful for this sort of control. However, they may not provide the level of flexibility the warp designer requires. In such instances, an approximate low resolution version of the high resolution surface can be used to deform the surface while maintaining the same basic shape of the surface. Using our mesh warp, a low resolution mesh may be created from vertices of the surface model, the low resolution mesh may be manipulated to create a variation in the low resolution mesh, for instance by manipulation of the vertices, and a variation in the surface model created from the variation in the low resolution mesh.

[0180]

[0181] To further illustrate our mesh warp, the following points are noted about a preferred embodiment: First, our warp allows deformation meshes of arbitrary topology and genus to be used. Secondly, unlike many conventional methods that use meshes to control a deformation, our warp is interpolating: a point located at a vertex position in the original mesh is deformed to the vertex position in the target mesh. Thirdly, our warp is defined spatially. This means that to create a deformation on an object, the only requirement is that the deformation mesh be located near the object to be deformed. This makes constructing a deformation mesh particularly easy: the vertices of the deformation mesh can be, for instance, any subset of the vertices of an original mesh, or some entirely new enclosing mesh. Still further, since the weighting field for a mesh vertex falls to 0 roughly outside the polyhedral cells the vertex bounds, moving a single point in the deformation mesh has localized effect in the warp.

[0182] Still another illustrative embodiment of the invention provides mechanism to deform a first surface by mapping regions of the first surface to regions of a second surface (hereinafter “Surface Region Warp”).

[0183] In one illustrative version of a Surface Region warp, M(u) is taken as control vertices that define the first surface, indexed by uεU={1, . . . , m}. A set of strength fields for the warp will be surface regions: surfaces or parts of surfaces. A convenient way to describe a surface region is as a parameterized function Surf (v), that returns a (point, normal) tuple for a given location on the surface. While in principle, the surface region is a continuum, preferably a finite array of surface samples are used and vεV={1, . . . , n} is the array index. The position of a given sample Surf(v) is denoted Surf(v).pos and the normal Surf(v).norm. Feature specifications for this warp are:

_{i}_{i}_{i}_{i}_{i}_{i}

[0184] Where Surf is a source surface region, Surf′ is a target surface region, and α_{i}_{i}_{i}_{i }_{i}_{i}

_{i}

[0185] where T=Surf_{i}_{i}_{i}_{i}

[0186] Highly customized strength fields and weighting fields may be created by the warp designer responsive to, for instance, the structure and/or topology surface in the undeformed model. Absent this type of customization, simple strength fields and weighting fields may be conveniently selected. For instance, a strength field could be selected so that the effect of the deformation is localized around the source surface; one could be:

_{i}_{α}_{i}_{β}_{i}_{i}

[0187] where f_{ab}_{ab}_{ab}_{i }_{i }

[0188] The weighting fields conveniently fall off as a distance from at model point to a position of a source surface sample increases. Further, the weighting fields fall off with the strength fields as the relative influence of a single sample is preferably zero when its absolute effect is zero. One suitable weighting field could be:

[0189] where ε is a small scalar value use to avoid division by zero, and r_{i }_{i }

[0190] An illustrative application of the Surface Region Warp is to deform a first surface in an animation when it is contacted by a second surface. The second surface might, for instance, cause a dent in the first surface, or might stick to the first surface and stretch it out of shape. The previously-described Surface Region Warp can be used to control the deformation based on proximity of the first and second surfaces.

[0191]

[0192] A different effect is shown in

[0193] To further understand our Surface Region Warp, the following points are noted about a preferred embodiment: First, the Surface Region Warp is an interpolating warp that takes source surface regions to target surface regions. Second, it is independent of the representation of the surface regions, so that surfaces of any type may be used to define the surface regions. Third our Surface Region Warp allows any representation to be used for the model as well. Fourth, our warp is simple to develop and yields goods results in a wide variety of cases. Finally notice that, strictly peaking, the new warp no longer exactly maps source curves to target curves. However, in practice it still visually interpolates the feature curves.

[0194] Warp Commutativity

[0195] It may be desirable for warps to commute, that is for the result of their composition to be invariant as to ordering. If warps commute, for instance in interactive modeling and animation, then the warp designer could be guaranteed that order of operations did not matter and thus achieve more predictable behavior, overall.

[0196] Warps performed in accordance with the present invention can be guaranteed to commute if two conditions are met. Notationally, two warps A & B with deforming functions D_{A}_{B}

_{B}_{A}_{A}_{B}

[0197] The two conditions are (1) neither D_{A}_{B}_{B}_{A}_{A}_{B}

[0198] Condition (1) can be satisfied by ensuring that the set of transformations, set of strength fields, and set of weighting fields for each warp do not change if the other warp is applied first. Condition (2) can be satisfied by ensuring that all weighted averages of warp A's transformations commute with all weighted averages of warp B's transformations.

[0199] Instead of computing the strength filed and weighing values on the warped model M′, transformations may be pre-computed and field values on the original model M and use these to define the warp. In this instance, the only requirement is that parameterized transformation values commute. This condition is satisfied by many instances. Notably a weighed average of translations is a translation and all translations commute. Thus, if all transformation values in two warps are translations, then pre-computation of their transformations on the original model guarantees commutativity the transformations. If two warps compute weighted averages of transformations as weighted averages of the translations caused by those translations, then pre-computation similarly guarantees commutativity of the warps.

[0200] Interpolation and Approximation

[0201] In the case of feature-based warps, a noteworthy property is whether the warp is interpolating or approximating. An interpolating warp maps model points located on source features to corresponding locations on target features. Approximating warps, on the other hand, do not necessarily map model points from source feature positions to their target positions. Frequently, approximating warps are smoother than interpolating warps and can provide a more-intuitive user interface.

[0202] As previously described, parameterized transformations may be constructed so that each point on a source feature corresponds to a single transformation value that maps the point on the source feature to a corresponding point on the target feature.

[0203] Under appropriate conditions, a feature-based warp is interpolating. Assuming a model point M(u) has the same position as some point on a source feature and that T_{i}

[0204] T_{i}

_{i}

_{i}

_{i}_{i}

_{j}_{j }

[0205] As these conditions may be more stringent than desirable in practice, conveniently, a feature based warp may be visually or approximately interpolating. A warp may achieve this when a feature's transformation acts with essentially full strength and dominates the weighting contributions of other transformations. More formally:

[0206] T_{i}

_{i}

_{i}

_{i}_{i}_{i}

_{i}_{j}_{j }

[0207] Warp Inversion

[0208] A warp designer may desire to find a warp's inverse, or, more generally determine if a particular warp is invertible. Yet another aspect of the present invention is the computation of a warp that has an inverse. Any warp that has an inverse may have that inverse computed in accordance with the present invention.

[0209] As noted above, one may understand the deformed model as resulting from the application of a transformation valued deforming function, D(u, M), to the undeformed model. Applying the inverse transformation—(D(u,M))^{−1}

^{−1}^{−1}

[0210] This, alone, may not be instructive to the warp designer who, rather, may desire that computation of the inverse warp compute the parameterized transformations, strength fields, and weighting fields for the inverse warp than just the final transformations. Unfortunately, this is not possible for all warps. However, yet another aspect of the present invention involves the computation of these parameterized transformations, strength fields, and weighting fields for the inverse warp.

[0211] In accordance with this aspect, a warp is inverted by inverting its parameterized transformations, strength fields, and weighting fields. This will correctly compute the inverse warp where strength fields and weighting fields for the inverse warp evaluate to the same values on both the undeformed model and the deformed model. Notationally, an inverse warp may be constructed by using parameterized transformations T_{i}^{−1}

_{i}_{i}_{i }

_{i}_{i}_{i }_{i}_{i}

[0212] Two points should be appreciated. First, this form is particularly beneficial for feature-based warps as it is natural for the warp designer to invert a feature based warp by swapping its source and target features and compute a new warp. In a feature based warp, swapping the features has the effect of inverting the warp's parameterized transformations. For this approach to correctly generate the inverse warp, i.e., for the conditions above to be satisfied, the set of strength fields, and the set of weighting fields should evaluate to the same values on both the undeformed model and the deformed model.

[0213] There is no, a priori, reason for this to be conveniently arrangeable in many warps. However, in yet another aspect of the present invention this restriction may be removed. In accordance with this aspect, the set of strength fields values and the set of weighting fields values are precomputed on the undeformed model and stored. When, later, computation of the inverse warp is desired, the precomptued values are retrieved and used to compute the inverse warp.

[0214] Second, D(u,M) may not have an inverse at all, e.g. a projection, and in this instance, could not be computed.

[0215] Varying Warps Over Time

[0216] Many desirable applications of warping in morphing and animation involve controlling the evolution of a warp over time. Yet another aspect of the present invention involves aspects for controlling the evolution of a warp over time.

[0217] In one variation, conveniently applicable to morphing, the warp designer smoothly varies a deformation from zero to full effect. One version of this involves interpolating between an identity transformation, I, and the deforming function D(u,M) that warps the undeformed model to the fully deformed model. A single parameter, s, may be used to control the transformation:

[0218] It will be appreciated that with this technique, the parameter s may be chosen to smoothly vary over time.

[0219] In a similar vein, interpolation may be taken between the identity transformation and each of the scaled transformations T_{i}

[0220] Yet another approach is to scale the strength fields animated by the morph parameters varying from zero (no deformation) to 1 (full deformation). When the Displacement Method is used to scale transformations by scalar values, this approach is similar to interpolating between T_{i}

[0221] Some embodiments could use still another approach for creating time-varying warps. In this approach—applicable to feature-based warps—the target features are animated smoothly from source position to target position and the same warping techniques (now with animated features) is used at each morph time-step. It will be appreciated that in this way a smooth transition can be achieved between the undeformed and deformed models.

[0222] One skilled in the art having the benefit of this disclosure will appreciated that features of the invention may be used to create deformations varying over time through varying, for instance, strength fields, weighting fields, parameterized transformations, or features themselves. Temporal variations of deformations will generally be smooth if variations of the parmeterized transformations, strength fields, and weighting fields are smooth. If the number of discrete transformations changes from time-step to time-step, care should be taken to blend in/out the added/removed transformations with weighting fields of smoothness of the warp is desired. Otherwise, the resulting warp may not be smooth.

[0223] By the same token, temporal discontinuities in strength fieldsof weighting fields can introduce temporal discontinuities in the deforming function. Continuous temporal warp behavior can be obtained from continuous behavior of warp parameters if small changes in the parameters of the warp produce small changes in the strength fields and weighting fields generated from these parameters.

[0224] Although the present invention has been described in terms of features illustrative embodiments, one skilled in the art will understand that various modifications and alterations may be made without departing from the scope of the invention. Accordingly, the scope of the invention is not to be limited to the particular embodiments discussed herein, but should be defined only by the allowed claims and equivalents thereof.