WO2007092037A2 - Method of simulating deformable object using geometrically motivated model - Google Patents

Method of simulating deformable object using geometrically motivated model Download PDF

Info

Publication number
WO2007092037A2
WO2007092037A2 PCT/US2006/028162 US2006028162W WO2007092037A2 WO 2007092037 A2 WO2007092037 A2 WO 2007092037A2 US 2006028162 W US2006028162 W US 2006028162W WO 2007092037 A2 WO2007092037 A2 WO 2007092037A2
Authority
WO
WIPO (PCT)
Prior art keywords
shape
points
goal
point
defining
Prior art date
Application number
PCT/US2006/028162
Other languages
French (fr)
Other versions
WO2007092037A3 (en
Inventor
Matthias Müller-Fischer
Bruno Heidelberger
Matthias Teschner
Markus Gross
Original Assignee
Nvidia Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corporation filed Critical Nvidia Corporation
Priority to GB0813908A priority Critical patent/GB2449377B/en
Priority to JP2008553222A priority patent/JP2009529161A/en
Priority to DE112006003728T priority patent/DE112006003728T5/en
Publication of WO2007092037A2 publication Critical patent/WO2007092037A2/en
Publication of WO2007092037A3 publication Critical patent/WO2007092037A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Definitions

  • Embodiments of the present invention relate generally to methods of simulating deformable objects. More particularly, embodiments of the invention relate to methods of simulating deformable objects using a geometrically motivated underlying model.
  • One common technique used to simulate deformable objects first creates a virtual model of an object (e.g., a mesh or point cloud) and then applies simulated physical forces such as tension, friction, gravity, pressure, etc., to the discrete points of the virtual model.
  • virtual models have been used to represent a wide variety of materials under different conditions. For example, researchers have developed virtual models for clothing, plastic, rubber, and so on. In addition, researchers have also developed virtual models to simulate complex, unique behaviors of these objects, such as fracturing and melting.
  • Some of the more common approaches to simulating deformable objects involve finite difference methods, mass-spring systems, boundary element methods, finite element methods, and implicit surfaces and mesh-free particle systems.
  • the term "stability" here refers to a process's tendency to respond in a reasonable way to minor deviations in its inputs.
  • implicit numerical integration techniques produce accurate simulations as various input parameters are varied, such as the mass of simulated points, the timestep of the integration, and so on.
  • explicit numerical integration techniques may produce simulations where the overall energy of a system erroneously increases by simply varying the timestep of the integration, the mass of simulated points, or the stiffness of a simulated object. As a result, explicit numerical integration techniques can produce highly unrealistic simulation results.
  • FIG. 1 is a diagram illustrating one way in which instability arises in deformable object simulations using explicit numerical integration.
  • Fig. 1 is a diagram illustrating one way in which instability arises in deformable object simulations using explicit numerical integration.
  • a simple one dimensional deformable object is modeled as a mass-spring system.
  • the mass-spring system relies on Newton's second law of motion.
  • Newton's second law of motion the acceleration of an object produced by a net force is directly proportional to the magnitude of the net force in the direction of the net force, and inversely proportional to the mass of the object.
  • deformable objects at least part of the net force at any point is created by displacement of the point from an equilibrium position. The displacement of a point from its equilibrium position creates potential energy, i.e., "deformation energy", causing the point to be pulled toward the equilibrium position.
  • a mass-spring system 100 comprises a spring 101 with a resting length / ⁇ , and two point masses 102 and 103 both having mass "m".
  • Point mass 102 is fixed at an origin and point mass 103 is located atx(t) at an initial time "f".
  • the location of point mass 103 is updated by a modified Euler integration scheme after a timestep "/?". According to the modified Euler integration scheme, the velocity "v" and position "x" of point mass 103 at time “t+h” are computed using the following equations (1) and (2):
  • Equation (1) uses an explicit Euler step and equation (2) uses an implicit Euler step.
  • Equations (1) and (2) can be represented as a system matrix "Af' multiplied by a
  • system matrix "E” represents a discrete system
  • the spectral radius of system matrix "E” i.e., the maximum magnitude of eigenvalues e ⁇ and ej
  • the magnitude of eigenvalue e ⁇ converges to 1 with eo ⁇ ⁇ 1 for h 2 k — > ⁇ .
  • the magnitude of ⁇ / is only smaller than one where timestep "h” is less than 2 1— . Where timestep "h” is greater than 2 J— , the system is unstable.
  • Fig. IB shows the result of performing an integration step starting with v(t) — 0. h 2 k
  • point mass 103 overshoots equilibrium position IQ, by a distance greater than the distance between x(t) and / ⁇ .
  • x(t + h) -I 0 > x(t) - I 0 .
  • the potential energy of system 100 increases after timestep "h”. Since system 100 had zero kinetic energy at time "f ⁇ the overall (i.e., kinetic plus potential) energy of the system is erroneously increased after timestep " ⁇ ".
  • a method of modeling a deformable object comprises modeling deformable elasticity for the object by pulling a deformed shape towards a defined goal shape.
  • a method of simulating a deformable object comprises defining positions and velocities for a plurality of points in a deformed shape, and updating the positions and velocities according to the positions of points in a goal shape.
  • a method of describing object deformation in a simulation comprises defining elastic forces associated with the object deformation in proportion to distances between points in a deformed shape and points in a goal shape, resolving the object deformation toward an equilibrium using an explicit integration scheme, and resolving the explicit integration scheme by matching on a point by point basis an original shape and the deformed shape and then pulling points corresponding to the deformed shape towards a corresponding points in the goal shape.
  • Figs. IA and IB are diagrams of a conventional one dimensional mass-spring system used to simulate a deformable object
  • Fig. 2 is a diagram illustrating a simulation of a two dimensional deformable object according to one embodiment of the present invention
  • Fig. 3 is a flowchart illustrating a method of simulating a deformable object according to an embodiment of the present invention.
  • Embodiments of the present invention provide various methods of modeling and simulating deformable objects. These methods can be readily applied to a wide range of computer-related applications such as scientific visualization, computer graphics, computer animated films, and video games, to name but a few.
  • Selected embodiments of the invention are particularly well-suited for applications requiring a high level of computational efficiency. For instance, some embodiments of the invention are capable of performing real-time simulations on deformable objects with complicated geometries and/or material properties using only a small portion of a computer's data processing bandwidth.
  • Video games are one application that requires a high level of computational efficiency.
  • state-of-the-art video games tend to incorporate a variety of realistic effects, such as characters and objects that interact with their environment in real time as if governed by the laws of physics.
  • Such characters and objects are often formed by deformable objects including, for example, clothing, bendable or stretchable materials, and so on.
  • a deformable object simulation according to embodiments of the invention is typically performed by running a software application on a computational platform including at least one microprocessor and memory.
  • the term "run” here describes any process in which a hardware resource associated with a computational platform performs an operation under the direction (directly or indirectly) of a software resource.
  • the software application receives geometric data and physics data defining a configuration of the deformable object and any external forces acting on the object.
  • the "configuration" of a deformable object is broadly defined as a description of all physical attributes of the object itself, including, for example, the locations and masses of discrete elements constituting the object (e.g., points, surfaces, etc.), any connectivity and movement of those discrete elements, and so forth.
  • the software application simulates the deformable object by updating the object's configuration based on internal forces of the object such as elastic tension, the movement of discrete elements comprising the object, and any external forces acting on the object such as gravity, pressure, or friction, or impact forces from collisions with other objects.
  • the computational platform typically comprises one or more central processing units (CPUs) and one or more memories.
  • the one or more memories store the software application and loads it into the one or more CPUs for execution.
  • a deformable object simulation may also be performed with more than one software application.
  • the simulation could be performed by two software applications running in two execution threads on a single CPU, on two different processor cores, or two different CPUs.
  • one of the applications generally comprises a main application defining the geometric and physics data
  • the other application generally comprises a physics application running in parallel with the main application and updating the geometric and physics data.
  • deformable object refers broadly to any collection of data capable of representing an object comprising elements that can be arranged with varying spatial relationships.
  • a deformable object could comprise a mesh, a surface, or a set of points.
  • a deformable object generally further comprises parameters related to the way the object tends to deform.
  • the deformable object may comprise a goal state for each of its elements, and a stiffness parameter specifying how easily each element approaches its goal state.
  • Fig. 2 is a diagram illustrating a method of modeling and simulating a deformable object according to one embodiment of the invention.
  • the method of Fig. 2 is described in relation to a two-dimensional (2D) object.
  • the method can be readily applied to objects expressed in higher (e.g., 3D) or lower (e.g., ID) dimensions.
  • a deformable object 200 is modeled by an "actual shape” 202 corresponding to a deformed state of deformable object 200, and a “goal shape” 203 corresponding to a non-deformed state of deformable object 200.
  • Actual shape 202 comprises four "actual points” xj, x?, x-3, and x*
  • goal shape 203 comprises four "goal points” gi, g 2 , g 3 , and g 4 corresponding to respective actual points xj, x?, X 3 , and X 4 .
  • Goal shape 203 is defined by matching an "original shape” 201 comprising four "original points” X 1 0 , x° , x° , and x° to corresponding actual points xi, x?, X 3 , and X 4 in actual shape 202.
  • goal shape 203 is a matched version of original shape 201.
  • match here refers to a process of transformation applied to original shape 201 such that goal shape 203 will approximate actual shape 202.
  • such a transformation can comprise, for example, a linear transformation, a higher order (e.g., quadratic) transformation, or some combination thereof.
  • deformable elasticity in deformable object 200 is then modeled by pulling actual points xj, X 2 , X 3 , and X 4 toward corresponding goal points gj, g 2 , g 3 , and g 4 , as indicated by arrows in Fig. 2.
  • the notations x ; ° , X 1 , and g are used to refer to points and also to locations of the points. For example, the location of an actual point x, is denoted as simply X 1 .
  • One way to match original shape 201 to actual shape 202 is by rotating and translating original shape 201.
  • the amount of rotation and translation can be determined by minimizing some distance between points in goal shape 203 and corresponding points in actual shape 202.
  • the translation and rotation could be chosen to minimize a weighted least squares distance between corresponding points in goal shape 203 and actual shape 202.
  • Correspondences between points in original shape 201 and actual shape 202 are generally defined a priori, for example, when original shape 201 and actual shape 202 are first defined.
  • corresponding points are labeled with the like subscripts.
  • original point x° corresponds to actual and goal points xj and gj.
  • the configuration of goal shape 203 can be computed by finding a rotation matrix R and translation vectors to and t such that the following equation (5) is minimized: ⁇ w ⁇ R ⁇ x « -t o ) + t-x,) 2 (5).
  • w represents a mathematical weight associated with original and actual points x° and X 1 .
  • the weight assigned to each point is the point's mass.
  • weights W 1 are substituted by masses "777," throughout.
  • Equation (9) defines a first matrix A qq , and a second matrix A pq .
  • First matrix A qq is symmetric, and therefore it contains a scaling component, but no rotational component.
  • second matrix ⁇ contains both a symmetric component and a rotational component.
  • the rotational component of second matrix ⁇ is rotation matrix R and the symmetric component of second matrix A pq is a symmetric matrix S.
  • represents a "stiffness" of deformable object 200.
  • deformable object 200 is rigid, deformable shape 202 tends to approach the configuration of goal shape 203 very quickly.
  • ⁇ ⁇ 1 deformable shape 202 still approaches the configuration of goal shape 203, however, it does so more slowly.
  • equation (13) the term represents a system matrix similar to h ⁇ - a system matrix "E” in equation (3). However, unlike the eigenvalues of system matrix "E”,
  • the magnitudes of the eigenvalues of the term are always one (1), regardless of the respective values of ⁇ and timestep h. IN particular, the eigenvalues of the term
  • FIG. 3 is a flowchart illustrating a method of simulating a deformable object according to an embodiment of the invention. In the description that follows, exemplary method steps are denoted by parentheses (XXX).
  • the method comprises defining an actual shape corresponding to a deformed state of the deformable object (301), defining a goal shape corresponding to a non-deformed state of the deformable object (302), and updating the location of each point in the actual shape by pulling the point toward a corresponding point in the goal shape (303).
  • Positions of actual points in the actual shape are generally defined by events in a software application, such as initialization and subsequent updates of the actual shape's configuration. Meanwhile, positions of goal points in the goal shape can be computed in a variety of different ways.
  • the positions of goal points gi in the goal shape are computed by defining an original shape comprising original points and rotating and translating the original shape to match the actual shape using a translation vector and rotation matrix, e.g., as described by equation (10).
  • the translation vector is generally computed from the respective centers of mass of the original and actual shapes, as described by equations (6) and (7), and the rotation matrix is generally computed by polar decomposition of a linear transformation matrix computed according to equation (9).
  • center of mass x° n ⁇ in equation (10) and relative locations q t in equations (8) and (9) are computed before any timesteps of the simulation are executed.
  • second matrix A pq is a 3 x
  • Second matrix A pq is decomposed into rotation matrix "i?" and symmetric matrix
  • S ⁇ ' i.e., UA p T q A pq
  • S ⁇ ' is computed by diagonalizing the symmetric matrix A ⁇ q A pq using 5-10 Jacobi rotations, where the computational complexity of each Jacobi rotation is constant.
  • the positions of goal points g,- are computed by a linear transformation using rotation matrix "R” and linear transformation matrix "A” according to the following equation (14):
  • equation (14) the term ⁇ is a control parameter used to control the locations of goal points gi.
  • Linear transformation matrix "A” is divided by lJdet(A) to ensure that the volume of the goal shape relative to the original shape is conserved by equation (14).
  • Linear transformation matrix "A” is generally constructed by forming first matrix A qq before any simulation timesteps are executed and then forming second matrix A pq with each timestep.
  • equation (14) can generate goal points g r - closer the locations of actual points x / . Accordingly, equation (14) is generally better at simulating more highly deformed, and/or less rigid objects.
  • goal points gi Another way to compute goal points gi is by performing a quadratic transformation on the original points.
  • Quadratic transformation matrix A [AQM] ⁇ a R 3x9 preferably minimizes the equation ⁇ w, (Aq ⁇ -pi) 2 , and is computed by the following equation (16): .
  • a symmetric matrix A qq e R 9x9 and vector q t in equation (16) can be computed before a simulation begins.
  • the control parameter/? can be used with quadratic transformation matrix A to further control the positions of the goal points.
  • Still another way to compute goal points g is by dividing actual points x, into overlapping clusters and then computing a separate transformation matrix for each cluster.
  • actual points x, represented by a volumetric mesh can be divided into clusters where each cluster comprises points adjacent to a common element of the volumetric mesh
  • a mesh can be regularly divided into overlapping cubical regions, and then a cluster can be formed by all points in each cubical region.
  • Equation (11) becomes the following equation (17):
  • the method described in relation to Fig. 3 can also be used to simulate plastic deformable objects.
  • a plastic deformable object is simulated by representing a deformation state SP for the object.
  • the deformation state S p is initialized with the identity matrix "/" and then updated with each timestep of the simulation.
  • Deformation state SP is updated based on symmetric matrix S derived by the polar decomposition of second matrix A pq of equation (9).
  • Symmetric matrix S represents a deformation of the original shape in an unrotated reference frame. Accordingly, where an amount of deformation (i.e., a distance) JS -/
  • timestep "/?” and the parameter c creep are used to control the plasticity of the deformable object.
  • the plasticity can be bound - / exceeds a threshold value c max .
  • state matrix is set by the following equation
  • state matrix SP is divided by ydet(S p ) every time it gets updated. Note that each time S p is updated, first and second matrices A qq and A pq must also be updated.

Abstract

A method of simulating a deformable object comprises modeling deformable elasticity for the object by defining an actual shape and a goal shape and pulling points in the goal shape towards corresponding points in the goal shape.

Description

METHOD OF SIMULATING DEFORMABLE OBJECT USING GEOMETRICALLY
MOTIVATED MODEL
[0001] This application claims the benefit of U.S. Provisional Application No. 60/678,815 filed on May 9, 2005.
BACKGROUND OF THE INVENTION
1. Field of the Invention
[0002] Embodiments of the present invention relate generally to methods of simulating deformable objects. More particularly, embodiments of the invention relate to methods of simulating deformable objects using a geometrically motivated underlying model.
2. Description of Related Art
[0003] Realistic computer simulations of everyday objects such as clothing, plastics, elastic materials, and articulated joints can be extremely difficult to generate due to the complex ways in which these objects tend to deform in real life. Simulations of such "deformable objects" must generally take into account both complicated geometric features and material properties of the objects.
[0004] One common technique used to simulate deformable objects first creates a virtual model of an object (e.g., a mesh or point cloud) and then applies simulated physical forces such as tension, friction, gravity, pressure, etc., to the discrete points of the virtual model. Such virtual models have been used to represent a wide variety of materials under different conditions. For example, researchers have developed virtual models for clothing, plastic, rubber, and so on. In addition, researchers have also developed virtual models to simulate complex, unique behaviors of these objects, such as fracturing and melting. [0005] Some of the more common approaches to simulating deformable objects involve finite difference methods, mass-spring systems, boundary element methods, finite element methods, and implicit surfaces and mesh-free particle systems. [0006] Despite the number of methods that have been developed for simulating deformable objects, such methods are rarely incorporated into applications like computer games. For example, a few contemporary games incorporate cloth models with simple geometries; however, in general, most applications running on Personal Computers (PCs) or game consoles tend to model only rigid bodies or objects. Indeed, multiple rigid objects are sometimes combined to imitate the movement of a deformable object, but true deformable object simulations are rare. [0007] One reason why deformable object simulations are rarely used in an application such as computer games is that stable simulations are generally too inefficient to satisfy the real-time demands of the application. For instance, conventional simulation methods often rely on implicit numerical integration to update the locations of discrete points in a virtual model. Implicit numerical integration techniques can provide a stable simulation, but they are too computationally expensive to process large and complicated physical models in realtime. Other physical modeling approaches rely on explicit numerical integration, which is more efficient, but it cannot guarantee a stable simulation.
[0008] The term "stability" here refers to a process's tendency to respond in a reasonable way to minor deviations in its inputs. For instance, implicit numerical integration techniques produce accurate simulations as various input parameters are varied, such as the mass of simulated points, the timestep of the integration, and so on. In contrast, explicit numerical integration techniques may produce simulations where the overall energy of a system erroneously increases by simply varying the timestep of the integration, the mass of simulated points, or the stiffness of a simulated object. As a result, explicit numerical integration techniques can produce highly unrealistic simulation results.
[0009] Various approaches have been developed to improve the efficiency of stable simulation techniques. For example, robust integration schemes with large timesteps and multi-resolution models have been developed. In addition, modal analysis approaches, which trade accuracy for efficiency, have also been developed. Furthermore, methods incorporating pre-computed state space dynamics and pre-computed impulse response functions have also been used to improve the efficiency of simulations. Finally, dynamic models derived from global geometric deformations of solid primitives such as spheres, cylinders, cones, or super quadrics have also been introduced to improve the efficiency of stable simulation techniques. [0010] Figure (Fig.) 1 is a diagram illustrating one way in which instability arises in deformable object simulations using explicit numerical integration. In Fig. 1, a simple one dimensional deformable object is modeled as a mass-spring system. Like many physically motivated deformable object simulations, the mass-spring system relies on Newton's second law of motion. According to Newton's second law of motion, the acceleration of an object produced by a net force is directly proportional to the magnitude of the net force in the direction of the net force, and inversely proportional to the mass of the object. In deformable objects, at least part of the net force at any point is created by displacement of the point from an equilibrium position. The displacement of a point from its equilibrium position creates potential energy, i.e., "deformation energy", causing the point to be pulled toward the equilibrium position.
[0011] Referring to Fig. IA, a mass-spring system 100 comprises a spring 101 with a resting length /ø, and two point masses 102 and 103 both having mass "m". Point mass 102 is fixed at an origin and point mass 103 is located atx(t) at an initial time "f". At initial time "t", the amount of force on point mass 103 is defined by the spring equation/= -k(x(t)-lo), where "Ar" is the spring constant, or "stiffness", of spring 101. Conceptually, the spring equation indicates that point mass 103 is pulled toward an equilibrium position where x = /ø. [0012] The location of point mass 103 is updated by a modified Euler integration scheme after a timestep "/?". According to the modified Euler integration scheme, the velocity "v" and position "x" of point mass 103 at time "t+h" are computed using the following equations (1) and (2):
-k(x(t) -l0) v(t + h) = v(t) + h- (1) m x(t+h) = x(t)+hv(t+h) (2)
Equation (1) uses an explicit Euler step and equation (2) uses an implicit Euler step. [0013] Equations (1) and (2) can be represented as a system matrix "Af' multiplied by a
state vector \y(t), x(tj\ , i.e., , where system matrix "E" is
Figure imgf000004_0001
defined by the following equation (3): kh_ m
E = (3) h2k h 1 - m
System matrix "is" has eigenvalues eø and ei represented by the following equations (4) and (5): e0 = 1 — l—(h2k -j-4mh2k + h4k2 ) (4)
2m
= 1 — —(h2k + j-4mh2k + h4k2 ) . (5) 2m
Since system matrix "E" represents a discrete system, the spectral radius of system matrix "E", i.e., the maximum magnitude of eigenvalues eø and ej, must not be larger than one (1) to ensure stability of the discrete system. The magnitude of eigenvalue eø converges to 1 with eo\ < 1 for h2k — > ∞ . However, the magnitude of β/ is only smaller than one where timestep "h" is less than 2 1— . Where timestep "h" is greater than 2 J— , the system is unstable. V k V k
Accordingly, the integration scheme involving equations (1) and (2) is only conditionally stable.
[0014] To further illustrate the instability of the discrete system represented by system matrix "E", Fig. IB shows the result of performing an integration step starting with v(t) — 0. h2k
The integration step moves point mass 103 by a distance Δx = (x(t) -I0) . Where m timestep "/?" or stiffness "A" are too large or mass "m" is too small, point mass 103 overshoots equilibrium position IQ, by a distance greater than the distance between x(t) and /ø. In other words, x(t + h) -I0 > x(t) - I0 . As a result, the potential energy of system 100 increases after timestep "h". Since system 100 had zero kinetic energy at time "f\ the overall (i.e., kinetic plus potential) energy of the system is erroneously increased after timestep "Λ". [0015] In general, the stability problem of explicit integration schemes can be stated as follows: elastic forces are negative gradients of elastic energy. As such, elastic forces point towards equilibrium positions. Explicit schemes may inaccurately scale the elastic forces when computing the displacements of points, causing the points to overshoot equilibrium positions so much that they increase the deformation and the energy of the system instead of preserving or decreasing the deformation energy, which is required for stability. [0016] One way to address the overshoot problem is to limit the displacement of points such that they never overshoot their respective equilibrium positions. For instance, in the one-dimensional spring example of Fig. 1, the movement of point mass 103 could be restricted from passing the equilibrium position x = IQ. One problem with this approach is that for many types of physical models, equilibrium positions are not readily defined for all points. For example, it is difficult to define equilibrium positions in solid finite elements or geometrically complex meshes.
SUMMARY OF THE INVENTION
[0017] According to one embodiment of the invention, a method of modeling a deformable object comprises modeling deformable elasticity for the object by pulling a deformed shape towards a defined goal shape.
[0018] According to another embodiment of the invention, a method of simulating a deformable object comprises defining positions and velocities for a plurality of points in a deformed shape, and updating the positions and velocities according to the positions of points in a goal shape.
[0019] According to still another embodiment of the invention, a method of describing object deformation in a simulation comprises defining elastic forces associated with the object deformation in proportion to distances between points in a deformed shape and points in a goal shape, resolving the object deformation toward an equilibrium using an explicit integration scheme, and resolving the explicit integration scheme by matching on a point by point basis an original shape and the deformed shape and then pulling points corresponding to the deformed shape towards a corresponding points in the goal shape.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The invention is described below in relation to several embodiments illustrated in the accompanying drawings. Throughout the drawings like reference numbers indicate, like exemplary elements, components, or steps. In the drawings:
[0021] Figs. IA and IB are diagrams of a conventional one dimensional mass-spring system used to simulate a deformable object;
[0022] Fig. 2 is a diagram illustrating a simulation of a two dimensional deformable object according to one embodiment of the present invention; and, [0023] Fig. 3 is a flowchart illustrating a method of simulating a deformable object according to an embodiment of the present invention.
DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0024] Embodiments of the present invention provide various methods of modeling and simulating deformable objects. These methods can be readily applied to a wide range of computer-related applications such as scientific visualization, computer graphics, computer animated films, and video games, to name but a few.
[0025] Selected embodiments of the invention are particularly well-suited for applications requiring a high level of computational efficiency. For instance, some embodiments of the invention are capable of performing real-time simulations on deformable objects with complicated geometries and/or material properties using only a small portion of a computer's data processing bandwidth.
[0026] Video games are one application that requires a high level of computational efficiency. For example, state-of-the-art video games tend to incorporate a variety of realistic effects, such as characters and objects that interact with their environment in real time as if governed by the laws of physics. Such characters and objects are often formed by deformable objects including, for example, clothing, bendable or stretchable materials, and so on.
[0027] A deformable object simulation according to embodiments of the invention is typically performed by running a software application on a computational platform including at least one microprocessor and memory. The term "run" here describes any process in which a hardware resource associated with a computational platform performs an operation under the direction (directly or indirectly) of a software resource.
[0028] To simulate a deformable object, the software application receives geometric data and physics data defining a configuration of the deformable object and any external forces acting on the object. The "configuration" of a deformable object is broadly defined as a description of all physical attributes of the object itself, including, for example, the locations and masses of discrete elements constituting the object (e.g., points, surfaces, etc.), any connectivity and movement of those discrete elements, and so forth.
[0029] The software application simulates the deformable object by updating the object's configuration based on internal forces of the object such as elastic tension, the movement of discrete elements comprising the object, and any external forces acting on the object such as gravity, pressure, or friction, or impact forces from collisions with other objects.
[0030] The computational platform typically comprises one or more central processing units (CPUs) and one or more memories. The one or more memories store the software application and loads it into the one or more CPUs for execution.
[0031] A deformable object simulation may also be performed with more than one software application. For example, the simulation could be performed by two software applications running in two execution threads on a single CPU, on two different processor cores, or two different CPUs. Where the simulation is performed by two software applications, one of the applications generally comprises a main application defining the geometric and physics data, and the other application generally comprises a physics application running in parallel with the main application and updating the geometric and physics data.
[0032] Various computational platforms capable of performing such a simulation are disclosed, for example, in U.S. Patent Applications with Serial Nos. 10/715,459 and
10/715,440 filed November 19, 2003, 10/815,721 filed April 2, 2004, 10/839,155 filed May
6, 2004, 10/982,791 filed November 8, 2004, and 10/988,588 filed November 16, 2004. The subject matter of these commonly-assigned, co-pending patent applications is hereby incorporated by reference.
[0033] In this description, the term "deformable object" refers broadly to any collection of data capable of representing an object comprising elements that can be arranged with varying spatial relationships. For example, a deformable object could comprise a mesh, a surface, or a set of points. A deformable object generally further comprises parameters related to the way the object tends to deform. For example, the deformable object may comprise a goal state for each of its elements, and a stiffness parameter specifying how easily each element approaches its goal state.
[0034] Fig. 2 is a diagram illustrating a method of modeling and simulating a deformable object according to one embodiment of the invention. For simplicity of explanation, the method of Fig. 2 is described in relation to a two-dimensional (2D) object. However, the method can be readily applied to objects expressed in higher (e.g., 3D) or lower (e.g., ID) dimensions.
[0035] Referring to Fig. 2, a deformable object 200 is modeled by an "actual shape" 202 corresponding to a deformed state of deformable object 200, and a "goal shape" 203 corresponding to a non-deformed state of deformable object 200. Actual shape 202 comprises four "actual points" xj, x?, x-3, and x*, and goal shape 203 comprises four "goal points" gi, g2, g3, and g4 corresponding to respective actual points xj, x?, X3, and X4. Actual points X], X2, X3, and X4 are characterized by respective masses "«?/", "/J?/', 'W, and "/»/'. [0036] Goal shape 203 is defined by matching an "original shape" 201 comprising four "original points" X1 0 , x° , x° , and x° to corresponding actual points xi, x?, X3, and X4 in actual shape 202. In other words, goal shape 203 is a matched version of original shape 201. The term "match" here refers to a process of transformation applied to original shape 201 such that goal shape 203 will approximate actual shape 202. As will be explained, such a transformation can comprise, for example, a linear transformation, a higher order (e.g., quadratic) transformation, or some combination thereof. Once goal shape 203 is defined, deformable elasticity in deformable object 200 is then modeled by pulling actual points xj, X2, X3, and X4 toward corresponding goal points gj, g2, g3, and g4, as indicated by arrows in Fig. 2. [0037] In this written description, the notations x;° , X1, and g, are used to refer to points and also to locations of the points. For example, the location of an actual point x, is denoted as simply X1.
[0038] One way to match original shape 201 to actual shape 202 is by rotating and translating original shape 201. The amount of rotation and translation can be determined by minimizing some distance between points in goal shape 203 and corresponding points in actual shape 202. For example, the translation and rotation could be chosen to minimize a weighted least squares distance between corresponding points in goal shape 203 and actual shape 202. Correspondences between points in original shape 201 and actual shape 202 are generally defined a priori, for example, when original shape 201 and actual shape 202 are first defined.
[0039] In Fig. 2, corresponding points are labeled with the like subscripts. For example, original point x° corresponds to actual and goal points xj and gj. Accordingly, the configuration of goal shape 203 can be computed by finding a rotation matrix R and translation vectors to and t such that the following equation (5) is minimized: ∑wχR{x« -to) + t-x,)2 (5).
In equation (5), w, represents a mathematical weight associated with original and actual points x° and X1. Typically, the weight assigned to each point is the point's mass.
Accordingly, to simplify this written description, weights W1 are substituted by masses "777," throughout.
[0040] Where the mathematical weight w, of each point in deformable object 200 is the point's mass "777,", translation vectors to and t are defined as respective centers of mass xc°m and xcm of original shape 201 and actual shape 202, defined by the following equations (6) and (7): y1 772, X0 1 O — Λcm — V-i W
Figure imgf000009_0001
[0041] To compute rotation matrix R, relative locations q, and ^?, of the points in original shape 201 and actual shape 202 are defined as qt = x,° - x°m and Pi = X1- xcm- A linear transformation matrix "A" minimizing the following equation (8) is then computed: ^ m1(Aq1 -P1)2 . (8)
[0042] The linear transformation matrix "A" that minimizes equation (8) is computed by taking the derivative of equation (8) with respect to "A" and setting the derivative to zero. The resulting linear transformation matrix "A" is computed by the following equation (9): A = (∑mlPlq!)(∑m,q,q!r = ApqAψι . (9)
[0043] Equation (9) defines a first matrix Aqq, and a second matrix Apq. First matrix Aqq is symmetric, and therefore it contains a scaling component, but no rotational component. In contrast, second matrix^ contains both a symmetric component and a rotational component. The rotational component of second matrix^ is rotation matrix R and the symmetric component of second matrix Apq is a symmetric matrix S. Rotation matrix R and symmetric matrix S can be found by decomposing second matrix Apq a via polar decomposition, represented by Apq = RS. In the polar decomposition, symmetric matrix S is computed as S = ^Ap T qApq and rotation matrix R is computed as R = ApqS~' . Once rotation matrix R is defined, the locations of goal points gι, g2, gs, and gj are computed by the following equation (10):
Figure imgf000010_0001
[0044] Then, upon computing the locations of goal points gj, go, g3, and g4, the locations of actual points xj, x, x?, and x/ are updated by integration according to the following equations (11) and (12): e (ft - x (ή v, (t + h) = vl (t) + a ^ J h Λ ) + hfex,_, (t)/m, (11)
xl(t + h) = x, (t) + hv, (t + h) (12)
In equations (11) and (12), the term α represents a "stiffness" of deformable object 200. The term α ranges from zero to one, where a value of α =1 indicates that deformable object 200 is rigid, and a value of α =0 indicates that deformable object 200 is highly deformable. The term feχt_ι(t) denotes a net external force acting on point "/" of actual shape 202 at time t. [0045] To illustrate the effect of α on actual shape 202, suppose that α = 1, initial velocity v(t) = 0, and net external force feχtJ(t) - 0. Under these conditions equation (11) o- (t) - x (t) evaluates as v, (t + h) - a ' — , and equation (12) becomes h x, (t + h) = x, (t) + g, (t) - X1 (t) - g, (t) . In other words, if deformable object 200 is rigid, deformable shape 202 tends to approach the configuration of goal shape 203 very quickly. Where α < 1, deformable shape 202 still approaches the configuration of goal shape 203, however, it does so more slowly.
[0046] Applying equations (11) and (12) to mass-spring system 100 shown in Fig. 1, the velocity and position of point mass 103 are updated according to the following equation (13):
Figure imgf000011_0001
1 - alh
[0047] In equation (13), the term represents a system matrix similar to h \ - a system matrix "E" in equation (3). However, unlike the eigenvalues of system matrix "E",
the magnitudes of the eigenvalues of the term are always one (1), regardless of
Figure imgf000011_0002
the respective values of α and timestep h. IN particular, the eigenvalues of the term
are defined as (1 - a 12) ± 4 a1 -4a 12. Because the eigenvalues of the term
are always equal to one, a simulation of mass-spring system 100 using equations
Figure imgf000011_0003
(11) and (12) is unconditionally stable. Moreover, the simulation using equations (11) and
(12) does not introduce damping into mass-spring system 100.
[0048] A three dimensional simulation of a deformable object with no external forces is also unconditionally stable and free of damping under equations (11) and (12). Moreover, as long as the external forces applied to a deformable object are invariant with respect to location, e.g., forces such as gravity, or the external forces are applied instantaneously, e.g., collision response forces, the simulation will be also be unconditionally stable. [0049] Fig. 3 is a flowchart illustrating a method of simulating a deformable object according to an embodiment of the invention. In the description that follows, exemplary method steps are denoted by parentheses (XXX).
[0050] Referring to Fig. 3, the method comprises defining an actual shape corresponding to a deformed state of the deformable object (301), defining a goal shape corresponding to a non-deformed state of the deformable object (302), and updating the location of each point in the actual shape by pulling the point toward a corresponding point in the goal shape (303). [0051] Positions of actual points in the actual shape are generally defined by events in a software application, such as initialization and subsequent updates of the actual shape's configuration. Meanwhile, positions of goal points in the goal shape can be computed in a variety of different ways.
[0052] According to one embodiment of the present invention, the positions of goal points gi in the goal shape are computed by defining an original shape comprising original points and rotating and translating the original shape to match the actual shape using a translation vector and rotation matrix, e.g., as described by equation (10).
[0053] The translation vector is generally computed from the respective centers of mass of the original and actual shapes, as described by equations (6) and (7), and the rotation matrix is generally computed by polar decomposition of a linear transformation matrix computed according to equation (9).
[0054] In general, center of mass x° in equation (10) and relative locations qt in equations (8) and (9) are computed before any timesteps of the simulation are executed.
Then, at each timestep of the simulation, second matrix Apq = ∑ ffi,p,qf is assembled.
Where the deformable object being simulated is three dimensional, second matrix Apq is a 3 x
3 matrix.
[0055] Second matrix Apq is decomposed into rotation matrix "i?" and symmetric matrix
"S" by computing symmetric matrix S as S =
Figure imgf000012_0001
and rotation matrix R as R = ApqS'1.
The term S~', i.e., UAp T qApq ) ' , is computed by diagonalizing the symmetric matrix A^qApq using 5-10 Jacobi rotations, where the computational complexity of each Jacobi rotation is constant.
[0056] According to another embodiment of the invention, the positions of goal points g,- are computed by a linear transformation using rotation matrix "R" and linear transformation matrix "A" according to the following equation (14):
Figure imgf000012_0002
(14)
In equation (14), the term β is a control parameter used to control the locations of goal points gi. Linear transformation matrix "A" is divided by lJdet(A) to ensure that the volume of the goal shape relative to the original shape is conserved by equation (14). Linear transformation matrix "A", is generally constructed by forming first matrix Aqq before any simulation timesteps are executed and then forming second matrix Apq with each timestep. [0057] One advantage of using equation (14) to compute the positions of goal points g,- rather than equation (10) is that equation (14) can generate goal points gr- closer the locations of actual points x/. Accordingly, equation (14) is generally better at simulating more highly deformed, and/or less rigid objects. [0058] Another way to compute goal points gi is by performing a quadratic transformation on the original points. For example, goal points gv can be computed by a quadratic transformation defined by the following equation (15): g,=[AQMJqh (15)
In equation (15), g, e R3, and q=[qx,qv,qz, qx 2,qy 2,ql, qxqy,qyq3,qzqxf <≡ i?9. A ≡ R?x3 contains the coefficients for the linear terms qx, qy, qz, Q e R3x3 contains the coefficients for the purely quadratic terms qx,q2,,q2 , and M e R3x3 contains the coefficients for the mixed terms qxqy, qyqz, qzqx. Quadratic transformation matrix A=[AQM] <a R3x9 preferably minimizes the equation ^ w, (Aqι-pi)2, and is computed by the following equation (16): . (16)
Figure imgf000013_0001
A symmetric matrix Aqq e R9x9 and vector qt in equation (16) can be computed before a simulation begins. Also, the control parameter/? can be used with quadratic transformation matrix A to further control the positions of the goal points. For example, the goal points could be generated by the equation g,= [ βλ + (1 - β)R ]g,-, where R e R3x9 = [R 0 0] instead of using equation (15).
[0059] Still another way to compute goal points g, is by dividing actual points x, into overlapping clusters and then computing a separate transformation matrix for each cluster.
For example, actual points x, represented by a volumetric mesh can be divided into clusters where each cluster comprises points adjacent to a common element of the volumetric mesh
(e. g. tetrahedron). Alternatively, a mesh can be regularly divided into overlapping cubical regions, and then a cluster can be formed by all points in each cubical region.
[0060] At each timestep, original points and actual points corresponding to each cluster are matched to generate goal points g,c{() , where "/" denotes the index of each point, and "c" denotes a particular cluster. Using goal points g,c(t) instead of goal points g, (t) , equation (11) becomes the following equation (17):
vl (t + h) = v,(t) + α gΛ ) l K ) + hfext Xt)Im1 . (17) h
[0061] One general problem with the velocity update in equations (11) and (17) is that the behavior of the system is highly dependant on timestep "7?". One way to address the problem is by setting α = hlτ , where τ < h is a time constant. [0062] Not all points of an actual shape or original shape need to be considered when computing a transformation matrix to define the locations of goal points gj. For example, where a deformable object comprises a large number of points, a subset of the actual points and corresponding original points defining the deformable object can be used to generate a transformation matrix. The transformation matrix can then be used to transform all of the original points to generate the goal points.
[0063] The method described in relation to Fig. 3 can also be used to simulate plastic deformable objects. Typically, a plastic deformable object is simulated by representing a deformation state SP for the object. The deformation state Sp is initialized with the identity matrix "/" and then updated with each timestep of the simulation.
[0064] Deformation state SP is updated based on symmetric matrix S derived by the polar decomposition of second matrix Apq of equation (9). Symmetric matrix S represents a deformation of the original shape in an unrotated reference frame. Accordingly, where an amount of deformation (i.e., a distance) JS -/||2 exceeds a threshold value cyjeid, state matrix SP is updated according to the following equation (18):
Sp ^ [I + hccreep(S -I)]Sp . (18)
In equation (18), timestep "/?" and the parameter ccreep are used to control the plasticity of the deformable object. The plasticity can be bound
Figure imgf000014_0001
- / exceeds a threshold value cmax. Where Sp -/ 112 > cmajς, state matrix is set by the following equation
(19):
SP
Figure imgf000014_0002
-l\\2. (19)
State matrix Sp is incorporated into the simulation of the deformable object by replacing the definition of qt = x° -x°m in equation (8) with the following equation (20):
Figure imgf000014_0003
To ensure that the volume of the deformable object is conserved throughout the simulation, state matrix SP is divided by ydet(Sp) every time it gets updated. Note that each time Sp is updated, first and second matrices Aqq and Apq must also be updated. [0065] The foregoing preferred embodiments are teaching examples. Those of ordinary skill in the art will understand that various changes in form and details may be made to the exemplary embodiments without departing from the scope of the present invention as defined by the following claims.

Claims

What is claimed:
1. A method of modeling a deformable object, the method comprising: modeling deformable elasticity for the object by pulling a deformed shape towards a defined goal shape.
2. The method of claim 1, further comprising: defining the goal shape using an extended shape matching technique.
3. The method of claim 2, further comprising: defining relative positions for points in the deformed shape and an original shape; and defining the goal shape by computing a transformation between the relative positions of points in the original shape and relative positions of points in the deformed shape.
4. The method of claim 3, further comprising: before computing the transformation, applying a deformation state to the relative positions of the points in the original shape.
5. The method of claim 4, further comprising: initializing the deformation state with the identity matrix; and updating the deformation state based on a deformation of the original shape in an unrotated reference frame.
6. The method of claim 2, wherein defining the goal shape using the extended shape matching technique comprises: rotating and translating an original shape to define the goal shape.
7. The method of claim 6, further comprising: defining a rotation matrix and a translation vector for rotating and translating the original shape to minimize a weighted least squares difference between the goal shape and the deformed shape.
8. The method of claim 7, further comprising: defining the rotation matrix by performing polar decomposition on a linear transformation matrix; and, defining the translation vector by computing respective centers of mass for the deformed shape and the original shape.
9. The method of claim 1, further comprising: varying the deformable elasticity in accordance with a linear or quadratic mode.
10. The method of claim 9, wherein varying the deformable elasticity in accordance with the linear mode comprises: applying a linear transformation to an original shape to define the goal shape.
11. The method of claim 9, wherein varying the deformable elasticity in accordance with the quadratic mode comprises: applying a quadratic transformation to an original shape to define the goal shape.
12. The method of claim 1, further comprising: defining the deformed shape as a plurality of clusters.
13. The method of claim 12, wherein modeling deformable elasticity for the object by pulling the deformed shape towards the defined goal shape comprises: pulling data points in each of the clusters towards data points in corresponding clusters within the goal shape.
14. A method of simulating a deformable object, the method comprising: defining positions and velocities for a plurality of points in a deformed shape; and, updating the positions and velocities according to the positions of points in a goal shape.
15. The method of claim 14, wherein updating the positions and velocities comprises: defining a velocity of a point in the deformed shape at a time t+h based on a velocity of the point at a time t and a difference between a position of a goal point and a position of the point at a time t; and, defining a position of the point at time t+h based on a positioin of the point at time t and the velocity of the point at time t+h.
16. A method of describing object deformation in a simulation, the method comprising: defining elastic forces associated with the object deformation in proportion to distances between points in a deformed shape and points in a goal shape; resolving the object deformation toward an equilibrium using an explicit integration scheme; and resolving the explicit integration scheme by matching on a point by point basis an original shape and the deformed shape and then pulling points corresponding to the deformed shape towards a corresponding points in the goal shape.
17. The method of claim 16, wherein matching on a point by point basis the original shape and the deformed shape comprises: selecting a set of points x° in the original shape and a corresponding set of points x, in the deformed shape; finding a rotation matrix R and a translation vectors t and to to minimize: the summation for all "i" Of (W1(R(X,0 - to) + t -x,)2, where W1 are weights for each point.
18. The method of claim 17, further comprising: for each point x° , defining a location for a corresponding point g, in the goal shape as g, - R( x° - x°m ) + Xcm, where x°m is a center of mass of the original shape and xcm is a center of mass of the deformed shape.
19. The method of claim 17, further comprising: for each point x" , defining a location for a corresponding point g, in the goal shape as
g, + ( 1 - β)R )(x° - xc°m ) + xιm , where x°m is a center of mass of the original
Figure imgf000017_0001
shape, xcm is a center of mass of the deformed shape, A is a linear transformation matrix, and β is a control parameter.
20. The method of claim 17, further comprising: for each point xf , defining a location for a corresponding point g, in the goal shape as gi= Aqi, where A is a quadratic transformation matrix and qt is a vector containing linear, quadratic, and mixed terms.
PCT/US2006/028162 2006-02-03 2006-07-21 Method of simulating deformable object using geometrically motivated model WO2007092037A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB0813908A GB2449377B (en) 2006-02-03 2006-07-21 Method of simulating deformable object using geometrically motivated model
JP2008553222A JP2009529161A (en) 2006-02-03 2006-07-21 A method for simulating deformable objects using geometry-based models
DE112006003728T DE112006003728T5 (en) 2006-02-03 2006-07-21 A method of simulating a deformable object using a geometrically motivated model

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/346,299 US7650266B2 (en) 2005-05-09 2006-02-03 Method of simulating deformable object using geometrically motivated model
US11/346,299 2006-02-03

Publications (2)

Publication Number Publication Date
WO2007092037A2 true WO2007092037A2 (en) 2007-08-16
WO2007092037A3 WO2007092037A3 (en) 2009-04-02

Family

ID=38345587

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/028162 WO2007092037A2 (en) 2006-02-03 2006-07-21 Method of simulating deformable object using geometrically motivated model

Country Status (6)

Country Link
US (4) US7650266B2 (en)
JP (1) JP2009529161A (en)
CN (1) CN101496028A (en)
DE (1) DE112006003728T5 (en)
GB (1) GB2449377B (en)
WO (1) WO2007092037A2 (en)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10352080A1 (en) * 2003-11-08 2005-06-02 Robert Bosch Gmbh Method for determining a raw form of an elastic component
WO2010041358A1 (en) * 2008-10-08 2010-04-15 株式会社ソニー・コンピュータエンタテインメント Game control program, game device and method for controlling game
US8538737B2 (en) * 2010-09-17 2013-09-17 Adobe Systems Incorporated Curve editing with physical simulation of mass points and spring forces
JP2012123014A (en) * 2012-02-20 2012-06-28 Chromba Inc Multiple capillary device for sample preparation
US20140168204A1 (en) * 2012-12-13 2014-06-19 Microsoft Corporation Model based video projection
EP2808811B1 (en) * 2013-05-30 2019-09-18 Dassault Systèmes Simulation of an assembly of fabric pieces
US9411796B2 (en) * 2013-09-04 2016-08-09 Adobe Systems Incorporated Smoothing paths in a graphical interface generated by drawing inputs
US9934339B2 (en) 2014-08-15 2018-04-03 Wichita State University Apparatus and method for simulating machining and other forming operations
US10621535B1 (en) 2015-04-24 2020-04-14 Mark Lawrence Method and apparatus to onboard resources
US10558770B1 (en) * 2015-06-12 2020-02-11 Msc.Software Corporation Finite element based direct modeling
US9870646B2 (en) 2015-06-26 2018-01-16 Virtual Outfits, Llc Three-dimensional model generation based on two-dimensional images
CN106408508B (en) * 2015-07-30 2019-07-09 腾讯科技(深圳)有限公司 A kind of anamorphose processing method and processing device
WO2017031718A1 (en) * 2015-08-26 2017-03-02 中国科学院深圳先进技术研究院 Modeling method of deformation motions of elastic object
CN105513130B (en) * 2016-02-01 2018-02-16 福建师范大学福清分校 A kind of soft tissue deformation method mixed based on grid with mesh free
US10215858B1 (en) * 2016-06-30 2019-02-26 Google Llc Detection of rigid shaped objects
US10713400B2 (en) 2017-04-23 2020-07-14 Cmlabs Simulations Inc. System and method for executing a simulation of a constrained multi-body system
EP3502930A1 (en) * 2017-12-22 2019-06-26 Dassault Systèmes Method for computing an unfolded part of a modeled bended part of a 3d object
US11645756B2 (en) * 2019-11-14 2023-05-09 Samsung Electronics Co., Ltd. Image processing apparatus and method
CN111062136B (en) * 2019-12-20 2024-02-09 南京大学 Real-time clothes form determining method and system
US11886174B2 (en) * 2020-07-31 2024-01-30 Dassault Systemes Americas Corp. Virtualized cable modeling for manufacturing resource simulation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020157478A1 (en) * 2001-04-26 2002-10-31 Seale Joseph B. System and method for quantifying material properties

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US631782A (en) * 1899-05-15 1899-08-29 Isaac H Fisher Apparatus for mixing concrete, mortar, & c.
US5010477A (en) 1986-10-17 1991-04-23 Hitachi, Ltd. Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
US5123095A (en) 1989-01-17 1992-06-16 Ergo Computing, Inc. Integrated scalar and vector processors with vector addressing by the scalar processor
US5966528A (en) 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5317681A (en) * 1991-12-30 1994-05-31 Xerox Corporation Sequencing and scheduling moves for converting concave polyhedra to their convex hulls
DE4390577T1 (en) 1992-02-18 1995-02-23 Apple Computer Programming model for a coprocessor in a computer system
US5664162A (en) 1994-05-23 1997-09-02 Cirrus Logic, Inc. Graphics accelerator with dual memory controllers
US5666497A (en) 1995-03-08 1997-09-09 Texas Instruments Incorporated Bus quieting circuits, systems and methods
US5818452A (en) * 1995-08-07 1998-10-06 Silicon Graphics Incorporated System and method for deforming objects using delta free-form deformation
US5796400A (en) * 1995-08-07 1998-08-18 Silicon Graphics, Incorporated Volume-based free form deformation weighting
US5765022A (en) 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
JPH09161095A (en) 1995-12-07 1997-06-20 Sega Enterp Ltd Picture processor
US6317819B1 (en) 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
KR100269106B1 (en) 1996-03-21 2000-11-01 윤종용 Multiprocessor graphics system
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5812147A (en) 1996-09-20 1998-09-22 Silicon Graphics, Inc. Instruction methods for performing data formatting while moving data between memory and a vector register file
US5892691A (en) * 1996-10-28 1999-04-06 Reel/Frame 8218/0138 Pacific Data Images, Inc. Method, apparatus, and software product for generating weighted deformations for geometric models
JP3681026B2 (en) 1997-03-27 2005-08-10 株式会社ソニー・コンピュータエンタテインメント Information processing apparatus and method
US6324623B1 (en) 1997-05-30 2001-11-27 Oracle Corporation Computing system for implementing a shared cache
US6147692A (en) * 1997-06-25 2000-11-14 Haptek, Inc. Method and apparatus for controlling transformation of two and three-dimensional images
JPH1165989A (en) 1997-08-22 1999-03-09 Sony Computer Entertainment:Kk Information processor
US6223198B1 (en) 1998-08-14 2001-04-24 Advanced Micro Devices, Inc. Method and apparatus for multi-function arithmetic
JP3597360B2 (en) * 1997-11-17 2004-12-08 株式会社リコー Modeling method and recording medium
US6317820B1 (en) 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
US6366998B1 (en) 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
US6504541B1 (en) * 1998-10-21 2003-01-07 Tele Atlas North America, Inc. Warping geometric objects
US7050655B2 (en) * 1998-11-06 2006-05-23 Nevengineering, Inc. Method for generating an animated three-dimensional video head
JP3017986B1 (en) 1998-11-26 2000-03-13 コナミ株式会社 Game system and computer-readable storage medium
JP2000222590A (en) 1999-01-27 2000-08-11 Nec Corp Method and device for processing image
DE69934478T2 (en) * 1999-03-19 2007-09-27 MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. Method and apparatus for image processing based on metamorphosis models
US6341318B1 (en) 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
GB0005750D0 (en) 2000-03-10 2000-05-03 Mathengine Plc Image display apparatus and method
US6525735B1 (en) * 2000-04-20 2003-02-25 Silicon Graphics, Inc. System for attaching rigid objects to deformed shapes in computer generated images via real time local approximation of deformation using rotation
US6608631B1 (en) * 2000-05-02 2003-08-19 Pixar Amination Studios Method, apparatus, and computer program product for geometric warps and deformations
WO2001099048A2 (en) * 2000-06-22 2001-12-27 Lifef/X Networks, Inc. Non-linear morphing of faces and their dynamics
US6867770B2 (en) * 2000-12-14 2005-03-15 Sensable Technologies, Inc. Systems and methods for voxel warping
US6779049B2 (en) 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
DE10106023A1 (en) 2001-02-09 2002-08-29 Fraunhofer Ges Forschung Method and device for collision detection of objects
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US7286972B2 (en) * 2001-04-17 2007-10-23 Livermore Software Technology Corporation Implicit-explicit switching for finite element analysis
US7363199B2 (en) * 2001-04-25 2008-04-22 Telekinesys Research Limited Method and apparatus for simulating soft object movement
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
US6876364B2 (en) * 2001-08-13 2005-04-05 Vidiator Enterprises Inc. Method for mapping facial animation values to head mesh positions
JP3625201B2 (en) * 2001-10-24 2005-03-02 株式会社コナミコンピュータエンタテインメントスタジオ Three-dimensional model transformation program, three-dimensional model transformation method, and video game apparatus
US7363198B2 (en) * 2001-10-29 2008-04-22 The Board Of Trustees Of The Leland Stanford Junior University Long elements method for simulation of deformable objects
JP2003162549A (en) * 2001-11-28 2003-06-06 National Institute Of Advanced Industrial & Technology Integrated geometric model generation method and computer program
US7120653B2 (en) 2002-05-13 2006-10-10 Nvidia Corporation Method and apparatus for providing an integrated file system
US6747643B2 (en) * 2002-06-03 2004-06-08 Omnigon Technologies Ltd. Method of detecting, interpreting, recognizing, identifying and comparing n-dimensional shapes, partial shapes, embedded shapes and shape collages using multidimensional attractor tokens
US7156661B2 (en) * 2002-08-22 2007-01-02 Align Technology, Inc. Systems and methods for treatment analysis by teeth matching
US7077647B2 (en) * 2002-08-22 2006-07-18 Align Technology, Inc. Systems and methods for treatment analysis by teeth matching
US20040075623A1 (en) 2002-10-17 2004-04-22 Microsoft Corporation Method and system for displaying images on multiple monitors
US7200840B2 (en) 2002-10-24 2007-04-03 International Business Machines Corporation Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
US20040193754A1 (en) 2003-03-27 2004-09-30 International Business Machines Corporation DMA prefetch
GB2399900B (en) 2003-03-27 2005-10-05 Micron Technology Inc Data reording processor and method for use in an active memory device
US20040236457A1 (en) * 2003-05-22 2004-11-25 Kimberly-Clark Worldwide, Inc. Method of evaluating articles used on a body in a virtual environment
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US20050086040A1 (en) 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US7421303B2 (en) 2004-01-22 2008-09-02 Nvidia Corporation Parallel LCP solver and system incorporating same
US7236170B2 (en) * 2004-01-29 2007-06-26 Dreamworks Llc Wrap deformation using subdivision surfaces
US7392163B1 (en) * 2004-03-25 2008-06-24 Livermore Software Technology Corporation Method and system for controlling hourglass deformations of solid elements in finite element analysis
US20050251644A1 (en) 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US7386636B2 (en) 2005-08-19 2008-06-10 International Business Machines Corporation System and method for communicating command parameters between a processor and a memory flow controller
JP2007293533A (en) 2006-04-24 2007-11-08 Toshiba Corp Processor system and data transfer method
US8284202B2 (en) * 2006-06-30 2012-10-09 Two Pic Mc Llc Methods and apparatus for capturing and rendering dynamic surface deformations in human motion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020157478A1 (en) * 2001-04-26 2002-10-31 Seale Joseph B. System and method for quantifying material properties

Also Published As

Publication number Publication date
CN101496028A (en) 2009-07-29
US8190412B2 (en) 2012-05-29
JP2009529161A (en) 2009-08-13
GB2449377B (en) 2011-06-15
US8886501B2 (en) 2014-11-11
GB2449377A (en) 2008-11-19
US20120232854A1 (en) 2012-09-13
GB0813908D0 (en) 2008-09-03
WO2007092037A3 (en) 2009-04-02
US20120218271A1 (en) 2012-08-30
US8666713B2 (en) 2014-03-04
US20060265202A1 (en) 2006-11-23
US7650266B2 (en) 2010-01-19
US20100161297A1 (en) 2010-06-24
DE112006003728T5 (en) 2009-01-15

Similar Documents

Publication Publication Date Title
US7650266B2 (en) Method of simulating deformable object using geometrically motivated model
Müller et al. Meshless deformations based on shape matching
Overby et al. ADMM $\supseteq $ projective dynamics: Fast simulation of hyperelastic models with dynamic constraints
US7363199B2 (en) Method and apparatus for simulating soft object movement
EP2069986A2 (en) Physical simulations on a graphics processor
US9443341B2 (en) Efficient and stable approach to elasticity and collisions for hair animation
Kikuuwe et al. An edge-based computationally efficient formulation of Saint Venant-Kirchhoff tetrahedral finite elements
Sifakis et al. Finite element method simulation of 3d deformable solids
Güdükbay et al. A spring force formulation for elastically deformable models
Huang et al. A survey on fast simulation of elastic objects
ElBadrawy et al. Speeding up cloth simulation by linearizing the bending function of the physical mass-spring model
Movania et al. A novel GPU-based deformation pipeline
Cetinaslan ESPEFs: exponential spring potential energy functions for simulating deformable objects
Yinghui et al. Real-time deformation using modal analysis on graphics hardware
Cetinaslan et al. Localized verlet integration framework for facial models
Tournier et al. Velocity-based adaptivity of deformable models
Kharevych et al. 3D physics engine for elastic and deformable bodies
CN102665836B (en) Graphical simulation of objects in a virtual environment
Yao et al. Realistic and stable animation of cloth
Atencio et al. Particle-Based Physics for Interactive Applications
STROHKORB Cloth Simulation
Chapman et al. An overview of physically-based modelling techniques for virtual environments
Jung et al. Collision handling for free-form deformation embedded surface
CN115455753A (en) Collision simulation method and device for soft tissue and rigid ground
CN116561951A (en) Real-time interactive high-precision rope simulation method and system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680053964.6

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 0813908

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20060721

WWE Wipo information: entry into national phase

Ref document number: 813908

Country of ref document: GB

Ref document number: 0813908.1

Country of ref document: GB

WWE Wipo information: entry into national phase

Ref document number: 2008553222

Country of ref document: JP

RET De translation (de og part 6b)

Ref document number: 112006003728

Country of ref document: DE

Date of ref document: 20090115

Kind code of ref document: P

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 06787954

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 06787954

Country of ref document: EP

Kind code of ref document: A2