WO2000048129A1 - Method and apparatus for animating two-dimensional and three-dimensional images - Google Patents

Method and apparatus for animating two-dimensional and three-dimensional images Download PDF

Info

Publication number
WO2000048129A1
WO2000048129A1 PCT/EP2000/001526 EP0001526W WO0048129A1 WO 2000048129 A1 WO2000048129 A1 WO 2000048129A1 EP 0001526 W EP0001526 W EP 0001526W WO 0048129 A1 WO0048129 A1 WO 0048129A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
motion
points
field
shape
Prior art date
Application number
PCT/EP2000/001526
Other languages
French (fr)
Inventor
André Villard
Hervé Lange
Original Assignee
Duran
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
Priority claimed from EP99400341A external-priority patent/EP1028393A1/en
Application filed by Duran filed Critical Duran
Priority to AU32819/00A priority Critical patent/AU3281900A/en
Publication of WO2000048129A1 publication Critical patent/WO2000048129A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation

Definitions

  • the invention is generally concerned with generating two-dimensional or three-dimensional animated shapes. Although shapes, in particular three-dimensional shapes, can now be generated, animating them in real time still represents an unsolved technical problem-
  • Various fields of activity such as video games and cinema film production, require tools for generating shapes, in particular three-dimensional shapes, and simultaneously animating and/or modifying them in real time .
  • Document US-5 796 400 describes a method using a grid of control points for an object.
  • the invention provides a method of generating an animated shape, or animating a shape, in two or three dimensions, the method comprising the following steps:
  • the points of the shape can be displayed on a display screen and moved in accordance with the determined motion.
  • the invention also concerns a method of sending animation data of a two-dimensional or three-dimensional shape via a communications network comprising the following steps:
  • This method of animating or processing two- dimensional or three-dimensional images integrates the dynamic parameters into the description of an object to be animated since a vector field is assigned to all or some of the geometrical points to determine their motion.
  • the field is a vector function E (x, y, z) defined at any point of the shape. It may derive from a potential.
  • the field at a point depends on the motion of one or more other points of the shape.
  • these are the points which are the nearest neighbors of the point concerned, in which case the field is a linear combination of the motions of the nearest neighbors and of the point concerned, for example.
  • the method of the invention integrates into the coordinates of each point or of a plurality of points the influence of other points of the shape itself: motion of those other points modifies the field at the point concerned and therefore modifies the motion of the point .
  • Determining the motion of each point may consist in computing the speed of the point as a function of the field at the point.
  • the equation of motion can relate the speed of the point proportionately to the field at the same point.
  • V n+1 and V n respectively represent the speed at times n and n+1
  • E n represents the value of the field at the point concerned at time n
  • the invention applies to the 2D or 3D imaging field the physical laws that describe the motion of a particle in one or more potential fields and the standard physical equations (see definitions given above of the method of computing the speed) are modified to render the method compatible with real time animation.
  • the fields can be attractors or repulsors and therefore, somewhat in the manner of a magnet, condition the inherent motion of any point influenced by the fields .
  • the method of the invention is a practical way of manipulating realistic physical concepts in two or three dimensions: all that is required is to choose the field appropriately.
  • the method of the invention allows immediate modification of the dynamic coordinates k a and/or ki (damping and inertia coefficients) . It therefore provides a high level of interaction.
  • the description of the motion is therefore contained in the definition of these additional, dynamic, coordinates.
  • the description of the motion is therefore economical in terms of memory space in a computing device implementing the method of the invention and can also be transmitted via a communications network with the data concerning the points or the shape itself.
  • the invention also provides a method of generating an animated shape, or a method of sending animation data of a shape via a communications network, comprising the following steps: - determining or computing the motion of each point of the set of geometrical points or of some of the geometrical points defining the shape in space as a function of the motion of at least one other point of the shape , and - moving the points of the shape in accordance with the motion thus determined, or sending via a communications network data concerning the shape or its points, and data of the motion thus determined.
  • the motion of the point concerned can be determined as a function of the motion of the points which are its nearest neighbors, for example.
  • the invention also provides a method of moving an object point of an image to be animated to a target point (P B ) of the image or a method of sending via a communications network data concerning the motion of an object point of an image comprising a target point, said image possibly further comprising obstacle points, the method comprising the following steps:
  • the object point (or animate) can be given variable inertia or, for example, constant inertia when it is "far" from a target to be reached and decreasing as the target is approached.
  • This has an effect of "smoothing" the trajectory when avoiding obstacles (the object point is entrained by its inertia) , and prevents undefined oscillatory motion about a target since the inertia falls to zero when the target is reached (which has the same effect as progressive "friction") .
  • the invention also provides a method of moving an object point of an image to be animated towards a target point (P B ) of the image, said image possibly further comprising obstacle points, the method comprising the following steps :
  • V n+ ⁇ k a .V n + kiE n , in which:
  • n+ ⁇ and V n are respectively the speed at times n+1 and n
  • k a and ki are respectively called a damping coefficient and an inertia coefficient.
  • k a can depend on the distance d to the target and decrease as the object point approaches the target point, for example.
  • an image field value can be associated with any point of a shape to be animated, represented on the image, for any (discrete) time n.
  • the field is a vector function E defined at any point of the shape or of a part of the shape. Any point that is part of the shape can be identified in a conventional system of spatial coordinates, for example three-dimensional X, Y, Z coordinates.
  • the invention adds to these conventional coordinates "influence" coordinates or parameters which correspond to the value of the image field at the geometrical point concerned and at the time n concerned. Consequently, with these additional coordinates, it is possible to describe the influence on each point of the shape, whether these are the influences of other parts of the object or those of other objects external to the shape itself.
  • dynamic coordinates k A and k a can be added to the above field or potential coordinates.
  • the flexibility (and thus the coefficient k a ) represents the fact that the object is damped to a greater or lesser degree at the point concerned.
  • the coefficient k £ corresponds to the (mathematical) concept of inertia in classical dynamics. According to the invention, the description of the motion is therefore contained in the definition of these additional dynamic coordinates. The description of the motion is therefore economical in terms of memory space in a computing device implementing the method of the invention.
  • the method of the invention allows immediate modification of the dynamic coordinates constituted by E n (the value of the field at the point concerned) or its potential and/or k a and/or k ⁇ (damping and inertia coefficients) . It therefore allows a high degree of interaction.
  • the object points, or the points of the shape can be stored in memory and/or displayed on a screen or a display device and moved in accordance with the motion determined.
  • NURBS NURBS
  • the latter surfaces are defined by interpolation between sections in turn formed by interpolation from control points.
  • the additional field (or potential) , flexibility, and inertia coordinates can be assigned to each control point so that the control points can be used to animate the surfaces created.
  • the description obtained in this way of an object and its motion is compact, much more so than the conventional description in terms of polygons. In the conventional description, the polygons themselves constitute the database of the objects. The present compactness is highly advantageous because the object and its motion can then be stored in smaller memories.
  • the coefficient k a tends towards 0 as the distance d to the target tends towards 0: accordingly, the inertia (in the physical sense of the term) is felt progressively less and less as the point approaches its target .
  • the coefficient k a can also be made constant for any distance d greater than a characteristic distance d ⁇ .
  • the attractive component of the field preferably has a potential of value zero at the target point. This choice enables the object point to be stopped when it reaches its target.
  • the repulsive component is preferably a function at most decreasing with the distance from the object point to the obstacle point concerned.
  • the influence of the repulsive field in the vicinity of the obstacle point is therefore at most greater than or equal to its influence at a distance from that obstacle point.
  • the potential associated with the repulsive component of the field, for a given obstacle point P 0 has the following form, in which d is the distance between a current object point P and the obstacle point P 0 :
  • V(P) k'/d if d ⁇ d 0
  • V(P) k'/do if d > d 0
  • at least one component of the motion of the object point along an axis of a system of axes in space is dependent only on the sign of the computed speed component along that axis.
  • the motion of a point P can be considered to occur, along the axis in question, only in "quantified" directions, in other words "leftward",
  • the invention also provides a method of moving an object point of an image to be animated or a method of sending data concerning the motion of a point of an image via a communications network, said image comprising a set of target points (P B ) to be reached, and possibly obstacle points, the method comprising the following steps:
  • the first target to be reached is the target nearest the object point, for example.
  • the invention also provides apparatus for generating an animated shape or for animating a shape, and comprising the following means: - means for assigning a vector field to each geometrical point defining the shape in space,
  • the invention also provides apparatus for generating an animated shape or for animating a shape comprising:
  • means can be provided for initially determining the geometrical points defining the shape in space .
  • the motion of each point can be determined as a function of the motion of the points which are the nearest neighbors of said point .
  • the invention also provides apparatus for moving an object point of an image to be animated toward a target point (P B ) of the image, said image possibly further comprising obstacle points, the apparatus comprising:
  • the invention also provides apparatus for moving an object point of an image to be animated to a target point (P B ) of the image, said image possibly further comprising obstacle points, the apparatus comprising :
  • V n+1 k a .V n + kiE n , in which:
  • V n+ i n ⁇ V n are respectively the speed at times n+1 and n
  • E n is the value of the field at the location of the point at time n
  • k a and k are damping and inertia coefficients
  • k a can depend on the distance d to the target and can be such that the object point moves with decreasing inertia as it approaches the target point, for example.
  • Apparatus of the above kind preferably further comprises means for modifying the value of k a and/or k ⁇ in real time.
  • the method or the apparatus of the invention is used to compute the motion of an object from the "target" of the motion, for example.
  • the above technique can be used to compute the motion of an object from influencing fields (attractor fields or repulsive fields, as defined above) which define the environment of the object.
  • the "target” is an influence or an attractor field to which the object is subject.
  • FIG. 1 shows an object point and a target point in a plane
  • FIG. 2 shows an object point, a target point and an obstacle in a plane
  • FIG. 38 is a diagram representing the steps of a method in accordance with the invention.
  • FIG. 39 is a diagram representing the meshing of a surface of a 3D object generated by a method in accordance with the invention.
  • FIGS. 40A and 4OB are diagrams showing the structure of apparatus for implementing a method in accordance with the invention.
  • FIG. 1 shows a reference plane (0, X, Y) .
  • An object or character (or point or pixel) P also referred to as the "animate" , with coordinates (x, y) is initially at the origin 0 and is to move towards a target P B with coordinates (x B , y B ) .
  • the target generates an attractive field and thereby propagates its influence throughout space in accordance with a particular law.
  • V the "Gradient" operator.
  • V B (P) k.
  • for example, where k has a non-zero value.
  • / represents the fact that the influence of the target increases with the distance of the object point from it.
  • the field lines generated by the target P B then constitute a bundle of straight-line segments passing through P B .
  • the field is radial and oriented toward P B . Its intensity is zero at P B and increases with distance.
  • the field E is proportional to the speed (dP/dt) of the point or of the object, for example. Under these conditions, the speed of the point is obtained, in the case of the above potential, from the equations:
  • the motion of a point P may be deemed to be possible only in "quantified” directions, i.e. "leftward”, “rightward” , “upward” or “downward” .
  • the motion appears continuous if seen “from afar", as is the case if the point P represents a pixel on a screen.
  • a motion algorithm needs only to look at the signs of the quantities (dx/dt) and (dy/dt), i.e. the signs of the quantities E x and E y . For example, if E x >0 and E y >0, the pixel must be moved “rightwards” and “downwards” . Until the target is reached, the signs of the quantities E x and E y are examined and the pixel is moved accordingly.
  • An obstacle P 0 generates a repulsive field whose influence decreases with distance and is higher locally, in the vicinity of the obstacle, for example. There can in particular be an area or a distance of influence around the obstacle beyond which the repulsive field of the obstacl e has no effect . It is a potential field, for exar nple : where I PPOII ⁇ dj . (infli from P 0 ) : elsewhere :
  • a function of the above kind is not discontinuous at the influence barrier (which would produce an infinite field at that point) .
  • the gradient (the field) gives rise to a discontinuity and this can suddenly repulse the animate, or the point, as it crosses the influence barrier.
  • it is in principle avoided and therefore never reached.
  • the discontinuity of the field can be expressed as a vector ⁇ E with components :
  • P n+1 as a function of P n (also called the Actuator of the animate) is therefore as follows (P n denotes the current position and P n+1 the next position) :
  • the object point has variable inertia, for example inertia that is constant "far” from a target to be reached and that decreases as the target is approached. This "smoothes" the trajectory when avoiding obstacles (the animate is entrained by its inertia) and prevents any possibility of undefined oscillatory motion about a target since its inertia decreases to the point of becoming very low or even zero once the target has been reached (this has the same effect as progressive "friction").
  • inertia for example inertia that is constant "far” from a target to be reached and that decreases as the target is approached.
  • a target P B has a characteristic distance d x from which the inertia decreases.
  • the Actuator of the animate then has the following structure:
  • V n+1 k a .v n + E n
  • an additional coefficient k x in the range from 0 to 1, for example, is introduced that is independent of the target and such that the speed of the animate is computed from the new equation (12) :
  • V n+ ⁇ k ⁇ . k a v n + E n ( 12 )
  • the universe in which a point or an object moves is represented in field terms. If the universe is made up of obstacles to be avoided, for example, the fields are repulsive fields.
  • the algorithm for moving an animate at the object point can be defined by the following rules.
  • the animate is in state ⁇ n .
  • This state comprises a set of kinematic data, for example, namely the position P n of the animate, its speed v n and its incremental movement ⁇ .
  • a chain of action (or "actuator") of the animate capable of producing its new state ⁇ n+1 at time n+1 as a function of the obstacles and the target to be reached has the following structure, for example:
  • k a and ki are respectively a damping coefficient and an inertia coefficient.
  • k a can be made dependent on the distance, for example using equation (11) above, with the same effects as already explained.
  • the coefficient ki (> 0 and generally in the range from 0 to 1) corresponds to inertia in classical physics (in the mathematical sense of the term) .
  • the circle around P 0 is of radius d in (influence barrier) and the circle around P B is of radius d ⁇ .
  • the first series of examples assumes that :
  • a target to be reached is at position P B (320, 180, 0).
  • the influence coefficient k is made constant and equal to 2.5.
  • V 0 (P) k'.fPPoU "1 if
  • ⁇ di (influence barrier) and V 0 (P) k' .di "1 (a constant) elsewhere.
  • the inertia is "negligible", so to speak, as a result of which the animate can hardly penetrate the obstacle.
  • Figure 15 shows the influence of the reduced inertia, associated with the very great influence of the obstacle.
  • a target is at position P B (260, 240, 0) .
  • the coefficient of influence k is set at 2.5.
  • the distance d ⁇ is set at 160.
  • An obstacle is at position P 0 (200, 90, 0) .
  • the coefficient of influence k' is made constant and equal to 70 000.
  • ⁇ d i t with d ⁇ 130.
  • the animate is less sensitive to the obstacle. Its path in the area of influence of the obstacle resembles a straight line segment.
  • a third series of examples concerns a target to be reached and a plurality of obstacles to be avoided.
  • V B (P) k
  • ⁇ d ⁇ (influence barrier) and V 0 (P) k.dj "1 (a constant) elsewhere. 4 -
  • the coefficient k a depends on the distance
  • > d I t k a 1.
  • k a (llP a P ⁇ ll/d ! ) . [2-(
  • the coefficients of influence of the two obstacles are k 0 and k' 0 .
  • the obstacle P 0 at coordinates (200, 90, 0) has a greater influence here than the obstacle P' 0 - Tne animate therefore avoids it more noticeably.
  • the amplitude of which is nevertheless limited because of the value k ⁇ (equal to 0.9 and not 1.0).
  • the obstacle at coordinates (120, 180, 0) has the greater influence.
  • Examples 21 and 22 concern three obstacles P 01 , P 02 ,
  • Example 21 ( Figure 24) : the parameters of the obstacles are:
  • a fourth series of examples concerns a target to be reached and a block of obstacles to be avoided.
  • a block of 15 identical obstacles has been chosen, with the centers of the obstacles regularly spaced by the amount 50 in a grid with 3 rows each of 5 obstacles.
  • the coordinates of the center of the first circle, top left, are defined as (100, 100, 0) .
  • the target is P B (325, 225, 0) , the coefficient of influence k is made constant and equal to 2.5 (unless otherwise indicated), and the distance d ⁇ is 100.
  • the high inertia of the animate prevents it from being greatly deflected by the centers of repulsion, especially as the value of k' is not excessively "high" .
  • the animate is deflected to the left, not to the right as previously.
  • the inertia which is still high, has a relatively visible effect in the rounding of the end of the trajectory.
  • the trajectory comes increasingly close to the edge of the obstacles because of the "low” inertia. In fact the animate oscillates around the edges, making sudden changes of direction.
  • Example 31 ( Figure 34) : k ⁇ - 0.50 (as in the previous example) .
  • the points moved in the above examples and the targets and obstacles can correspond to points of an animated image which is represented on a screen.
  • Points describe the shape in question, and are obtained by CAD, for example, or by any other type of modeling; the image can also be a digitized image of a real object, in which case the image is equivalent to the data of the set of its pixels with the corresponding intensities.
  • the image field at a point can result from the influence of a target point, with or without obstacle points, on the points of the shape .
  • the image field can depend on the motion of the shape itself, without there even being any question of targets and/or obstacles in the image.
  • the image field can be defined at each point as a function of the motion of at least one other point of the shape, for example the motion of the points which are the nearest neighbors of each point.
  • the field then constitutes an array of mutual influences of the points of the shape .
  • maintaining points of the object at a distance is effected by an additional component of the repulsive field.
  • each point of the shape can be moved at a speed proportional to the image field at that point .
  • V n+1 k a . v n + E n 2
  • P n+1 P n + ( ⁇ /
  • an additional coefficient (denoted k ⁇ and in the range from 0 to 1, for example) is introduced and is independent of the target and such that the speed of the animate is computed from the new equation (14) :
  • V n+1 k x .k a v a + E n (14)
  • a motion algorithm can then be determined by the following rules:
  • ⁇ n (respectively ⁇ n+1 ) .
  • This state is constituted by a set of kinematic data, for example, namely the position P n and speed v n of the object point.
  • ⁇ n+1 is obtained by: 1 ) Computing the total field E n at point P n
  • k a or of the concept of flexibility comes into play, for example, if P n describes the position of the end of a flexible blade the other end of which is fixed. If k a is small, a pulse applied to the free end produces a motion that is very quickly damped: the blade is not flexible (hard) . If k a is greater, the motion is an oscillatory motion and is damped more slowly: the blade is flexible.
  • the speed can be computed from the equation:
  • V n+ ⁇ k a V n + k ⁇ -. (14') or the equation:
  • V n+1 k I k a V n + kiE a (14") in which the various coefficients have the meanings already defined.
  • k a can depend on the distance, for example according to equation (11) above.
  • FIG. 38 is a diagram showing steps of a method in accordance with the invention.
  • a first step SI concerns defining the object or the shape, for example by points with coordinates in space.
  • This object, or shape can be displayed on a display unit .
  • a potential or a field is defined for all or part of the shape.
  • a potential or field component is assigned to these points.
  • step (S3) the values of the parameters k a , ki and where applicable k ⁇ and k e are assigned to the points.
  • the speed or motion or displacement is then computed or determined (step S4) .
  • This motion or displacement can be displayed (step S5) .
  • step S6 The field parameters and/or the dynamic parameters can be modified (step S6) , in which case (Y) the speed and/or the displacement (S4) are recomputed. Otherwise (N) , display continues.
  • step S4 of computing the motion or displacement with the aid of various algorithms is described in detail above.
  • This technology can be used not only to create 3D objects but also to transform or animate them, and all this in real time.
  • the geometry of an object is preferably described by means of NURBS surfaces.
  • This data defines a description of the object that is much more global than the three spatial coordinates of the polygon technique.
  • This information contains not only a description of the geometry of the object (which can give much higher resolution than the polygon technique) but also a description of the coded or encoded general shapes .
  • NURBS Non-Uniform Rational B-spline curves and surfaces were conceived specifically for 3D computer modeling. They are based on surfaces generated from computation algorithms; they have specific properties indicated by their generic name (N.U.R.B.S.) :
  • B-splines are defined as a succession of Bezier curves .
  • Rational means that the equation representing the curve or the surface is expressed in the form of a ratio between two polynomials.
  • a rational equation of this kind provides better modeling of some large surfaces and curves, in particular conic sections, spheres, etc.
  • Non-uniform means that the range of a control point of the surface is variable. Surfaces and curves which are uniform (which is not the case with NURBS) are not invariant in a perspective projection, which is an important restriction on interactive 3D modeling. NURBS surfaces can be regarded as the results of interpolation between sections in turn formed by interpolation from single "control points” .
  • a 3D model using "B-splines” can be defined by the following elements, schematically represented in Figure 39:
  • Each bone is a series of sections.
  • a bone comprises at least 3 sections: - two nodal sections 4, 6, one at each end, and
  • a human head would be defined by eight control sections to achieve sufficiently accurate rendering .
  • Each section is made up of a number of control points 6-1, 6-2, 6-3 8-1, 8-2, 8-3.
  • control points can be taken per section, in order to obtain a precise description of the geometry of the object.
  • a human head could have, on average, 100 control points
  • Polygons can thereafter be generated from the combination of sections and control points. These polygons are organized into a series of alternate points using the "STRIP" model to accelerate their rendering on a graphics screen.
  • the sections and the control points define the control meshing of the object.
  • the interpolation process which generates a surface is as follows :
  • control points are control points (the interpolated control points 14) .
  • Intermediate sections are generated from each interpolated point and interpolated control point of each section. Each point of the intermediate sections is really on the surface.
  • the "bones”, sections and control points are the three elements that define the complexity of a 3D model . They generate polygons; the size of the polygons generated depends on their number.
  • Control points and sections can be used to create and transform 3D objects.
  • the algorithmic and/or mathematical method of creating a surface of a 3D object is as follows:
  • "Spline" generation kN 3D points are generated from N control points by interpolation (k is a factor depending on the required precision of the object, which can be dependent on the distance of the object from the camera, for example, or the power of the PC workstation) .
  • the objects are generated mathematically and can therefore have a parameter space in addition to the 3D geometrical space in which they are displayed.
  • each 3D point can be associated with an eight-dimensional vector represented by eight coordinates :
  • the interpolation process is the same for the four coordinates of the vector (X, Y, Z, V) ; it will also be identical for the three coordinates of the other vector.
  • the factor "r” depends on the precision of the description of the object, which can depend on the distance of the object from the camera, for example .
  • the total number of 3D points for the surface is then k.N[r. (M-l) + 1] .
  • Each visible 3D point can be projected into the two- dimensional frame of reference of the camera.
  • One example of an application concerns a flexible membrane model .
  • This surface is a series of control sections ... S k _ ⁇ , S k , S k+1 , ..., each section S k comprising control points ... P [k(j -i)] 0 , P[kj-o ⁇ P . J +D JO. in which the subscripts 0 indicate that the control points are in equilibrium.
  • E kj ⁇ P k(j+1) + ⁇ P k(j-1) + ⁇ P (k+1)j + ⁇ Po-.u j - 4. ⁇ P kj
  • E kj is expressed as a function of the point P kj itself and its four closest neighbors.
  • the influence field E kj is therefore a mutual influence field whose origin is the motion of the adjacent morphic points. This motion is interpreted here as a deformation.
  • an external influence is of course feasible, for example in the form of a gravity field E G which would simply be added to the field E kj .
  • Each point is therefore intrinsically subject to the influence of the fields created by the motions of neighboring points, producing a global effect of flexibility or of rigidity, of slow or fast damping, depending on the values chosen for the dynamic parameters ki and k e of each point P k .
  • the spatial coordinates of all the points P j can be calculated (P [kjjn represents all the spatial coordinates of the point P kj at time n) , in the following manner. At time n these coordinates are expressed as the sum of the equilibrium position and its variation:
  • the value of the coefficient I can be set at 0.1, for example. Also:
  • Figure 40A represents a graphics workstation comprising a microcomputer 20 appropriately configured for generating and processing, using a method in accordance with the invention, two-dimensional or three- dimensional graphics objects, an output peripheral device 22 and control peripheral devices (keyboard 24 and mouse 25) .
  • the microcomputer 20 has a computation section with all the electronic, software and other components needed for generating images and processing or animating the images so obtained.
  • the system uses a PC type microcomputer of moderate power.
  • the microcomputer comprises a central processor unit 20 which comprises a microprocessor 26, a memory 28, an input peripheral device, for example of the hard disc type 32, connected to a bus 30.
  • An output peripheral device for example of the screen type 22, or display apparatus controlled by a video card is used to display information.
  • the microcomputer also has control peripheral devices, in this instance the keyboard 24 and the mouse 25.
  • the programming language used is the C++ language, together with the assembler language for Pentium microprocessors. Models, in particular models based on splines, can be written to and read from a hard disk. The generated models are displayed on the screen 22 by means of the graphics subsystem, in other words:
  • control software of a 3D card (able to display three-dimensional information), i.e. a card dedicated to displaying polygons rather than points; the 3D card thereafter converts the polygons into points to be displayed on behalf of the video card. Note that it is not the splines that are "sent" to the 3D card, but polygons (triangles) generated for display from the splines themselves .
  • the control peripheral devices in particular the keyboard 24 or the mouse 25, are used to manipulate the objects, for example to select and move the morphic points in the 3D space represented on the screen, the attractive or repulsive fields of the system, etc., or to show and clear a pull-down menu, i.e.
  • the program comprises the following facilities, for example:
  • a program for implementing the method of the invention is resident or stored on a storage medium (for example: diskette or CD ROM or removable hard disk or magnetic storage medium) which can be read by a data processing system or by the microcomputer 20.
  • the program comprises instructions commanding the microcomputer, for example:
  • the shape or the points are displayed on the graphics screen 22 in real time.
  • the method of the invention enables the motion of the object to be displayed in real time.
  • the program comprises instructions commanding the microcomputer, for example:
  • the shape or the points are displayed on the graphics screen 22 in real time.
  • the method of the invention enables the motion of the object to be displayed in real time.
  • the program comprises instructions commanding the microcomputer, for example, to move an object point of an image to be animated, comprising a target point (P B ) of the image, said image possibly further comprising obstacle points, by:
  • the method of the invention enables the motion of the object to be displayed in real time.
  • the microcomputer comprises means for computing potential or field values and/or values k a and at the points considered or selected and the speed of motion and the new coordinates of the points.
  • the microcomputer 20 can be programmed to generate NURBS surfaces as described above. It can also be programmed for the generation or computer-aided design (CAD) of shapes.
  • CAD computer-aided design
  • the data relating to the shape, or the points that define it, in two dimensions or three dimensions, is stored in memory, along with the corresponding dynamic parameters.
  • the microcomputer 20 is also connected to other peripheral devices, for example printing devices (not shown in the figure) . It can be connected to an electronic communications network, of the Internet type, for example, for sending or receiving data relating to the shapes generated.
  • the microcomputer is equipped with means for connecting to the network, or input/output interface means for the network, for example a modem.
  • the data transmitted comprises data on the relative coordinates of the points defining the object and also data relating to the dynamics of the points and of the object itself and obtained by one of the methods in accordance with the invention.
  • the invention therefore also concerns the reception of such data, relating to the object and to its dynamics, and obtained or produced by one of the methods described above .
  • the microcomputer 20 can equally be connected to an image acquisition subsystem, for example a digital camera 34 used to acquire digital images of an object. These images are then stored in the memory of the microcomputer and processed in accordance with the present invention.
  • image acquisition subsystem for example a digital camera 34 used to acquire digital images of an object.
  • the animation of the image or the motion of its points can be displayed or the corresponding data (on the image and its animation or motion) sent via a wide area communications network (WAN) or local area communications network (LAN) to other display apparatus or to other data processing or storage apparatus, also connected to the network.
  • WAN wide area communications network
  • LAN local area communications network
  • the invention can be applied to cinema film production, video games and methods of designing technical components where it is important not only to represent the components but also to be able to observe their behavior in response to simulated deformation.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

The invention concerns a method of generating an animated shape or a method of animating images comprising assigning a vector field to each geometrical point of the shape of the image and determining the motion of each point from an equation of motion in accordance with the field at that point. The points are moved in accordance with the motion determined in this way. The image can comprise points to be reached (PB) and obstacle points (PO), the field then comprising an attractive component associated with the points to be reached and a repulsive component associated with the obstacles.

Description

METHOD AND APPARATUS FOR ANIMATING TWO-DIMENSIONAL AND THREE-DIMENSIONAL IMAGES
Technical field: prior art The invention is generally concerned with generating two-dimensional or three-dimensional animated shapes. Although shapes, in particular three-dimensional shapes, can now be generated, animating them in real time still represents an unsolved technical problem- Various fields of activity, such as video games and cinema film production, require tools for generating shapes, in particular three-dimensional shapes, and simultaneously animating and/or modifying them in real time .
At present there is a great disparity between what is needed in the above fields and the solutions available.
"Real time" methods exist already, but require the use of large computer systems.
Prior art methods in this field first generate three-dimensional shapes in a conventional way and then "add" motion, in the same way as when creating an animated drawing. The prior art methods have little capacity for animation. In a field like video games, animation capability and motion are essential, much more so than is realism of the non-animated shape itself. Similarly, in the field of computer-aided design of technical components, it is important to be able not only to represent the components but also to observe their behavior in response to simulated deformation. Document EP-425 177 describes a method of representing three-dimensional objects using NURBS surfaces. These surfaces are determined from control points and associated weights.
Document US-5 796 400 describes a method using a grid of control points for an object.
None of the methods described in the above documents is compatible with real time use. Another aspect of the problem currently faced is that of models, in particular three-dimensional models, whose data can be sent via the Internet, including data on animating such models. The Internet uses telephone lines with a low bit rate. This information carrier is therefore unable to transmit data defining shapes, in particular moving shapes, which are conventionally defined by a large number of points. The problem therefore arises of generating three-dimensional objects that are sufficiently optimized for transfer and control of information via the Internet, comprising information concerning the motion of the object concerned.
Another technical problem that arises, independently of the problem of transmission via the Internet, is that of storing objects in the form of efficient and very compact data, in real time, with a low demand for memory.
Summary of the invention First of all, the invention provides a method of generating an animated shape, or animating a shape, in two or three dimensions, the method comprising the following steps:
- assigning a vector field to each of the geometrical points defining the shape in space, or to some of those points,
- determining or computing the motion of each point, or of some points, from an equation of motion, in accordance with the field at that point, and
- moving the points of the shape in accordance with the motion thus determined.
There can be a previous step of determining geometrical points of the shape.
The points of the shape can be displayed on a display screen and moved in accordance with the determined motion.
The invention also concerns a method of sending animation data of a two-dimensional or three-dimensional shape via a communications network comprising the following steps:
- assigning a vector field to each of the geometrical points defining the shape in space, or some of the points,
- determining or computing the motion of each point, or some of the points, from an equation of motion, as a function of the field at that point, and
- sending, via a communications network, data relating to the shape (in particular data relating to the geometrical points which define it) and data relating to the motion of the points thus determined.
This method of animating or processing two- dimensional or three-dimensional images integrates the dynamic parameters into the description of an object to be animated since a vector field is assigned to all or some of the geometrical points to determine their motion.
The field is a vector function E (x, y, z) defined at any point of the shape. It may derive from a potential.
In one embodiment, the field at a point depends on the motion of one or more other points of the shape. For example, these are the points which are the nearest neighbors of the point concerned, in which case the field is a linear combination of the motions of the nearest neighbors and of the point concerned, for example.
Accordingly, the method of the invention integrates into the coordinates of each point or of a plurality of points the influence of other points of the shape itself: motion of those other points modifies the field at the point concerned and therefore modifies the motion of the point .
Determining the motion of each point may consist in computing the speed of the point as a function of the field at the point.
Accordingly, the equation of motion can relate the speed of the point proportionately to the field at the same point.
It can also take account of the effects of damping and inertia, in which case the speed of each point is obtained from the equation: Vn+1 = kaVn + kiEn in which:
• Vn+1 and Vn respectively represent the speed at times n and n+1,
• En represents the value of the field at the point concerned at time n, and
• ka and k± are coefficients, which are called respectively damping and inertia coefficients.
Consequently, the invention applies to the 2D or 3D imaging field the physical laws that describe the motion of a particle in one or more potential fields and the standard physical equations (see definitions given above of the method of computing the speed) are modified to render the method compatible with real time animation. The fields can be attractors or repulsors and therefore, somewhat in the manner of a magnet, condition the inherent motion of any point influenced by the fields .
The method of the invention is a practical way of manipulating realistic physical concepts in two or three dimensions: all that is required is to choose the field appropriately.
Finally, at any time, the method of the invention allows immediate modification of the dynamic coordinates ka and/or ki (damping and inertia coefficients) . It therefore provides a high level of interaction. In accordance with the invention, the description of the motion is therefore contained in the definition of these additional, dynamic, coordinates. The description of the motion is therefore economical in terms of memory space in a computing device implementing the method of the invention and can also be transmitted via a communications network with the data concerning the points or the shape itself. The invention also provides a method of generating an animated shape, or a method of sending animation data of a shape via a communications network, comprising the following steps: - determining or computing the motion of each point of the set of geometrical points or of some of the geometrical points defining the shape in space as a function of the motion of at least one other point of the shape , and - moving the points of the shape in accordance with the motion thus determined, or sending via a communications network data concerning the shape or its points, and data of the motion thus determined.
There can also be a previous step of determining geometrical points of the shape.
Accordingly, the motion is again determined from the interior of the shape itself. This method of animating or processing 2D or 3D images integrates, for any point or for any subset of the points, the influence of other points of the shape itself: motion of these other points modifies the motion of the point concerned.
The motion of the point concerned can be determined as a function of the motion of the points which are its nearest neighbors, for example. The invention also provides a method of moving an object point of an image to be animated to a target point (PB) of the image or a method of sending via a communications network data concerning the motion of an object point of an image comprising a target point, said image possibly further comprising obstacle points, the method comprising the following steps:
- defining an image field function comprising:
• an attractive component associated with the target point and of zero value at that point, and
• if obstacle points are present, a repulsive component associated with each obstacle point, - computing the speed of the object point proportionately to the value of the image field at the object point, and
- moving the object point as a function of the calculated speed or sending data relating to the point, to the target, to the obstacles, and to the speed of the point via a communications network.
The speed can be calculated from the following equation, for example: V = (δ/||E||) .E in which V and E are respectively the speed and vector fields at the point concerned.
This is the case if dynamic parameters ka and k are considered, for which ka = 0, and it is required that the speed norm should be constant and equal to δ.
In the case of N obstacles Poj (j = 1, ..., N) , the speed can be calculated from the equations:
(dx/dt)=N.{- . (x-xB)+Σ(j.lfH) [k' j Nx-Xoj ) |PPoji 2]} (dy/dt ) =N . { -k Ny-yB) +Σ(j =1 , N) [^-(v-Yoj) ||PPoj||"2]} (8) (dz/dt)=N.{-k. (z-zB)+Σ(j=1/N) [k' j. -Zoj) ||PPojr2]} with N = (δ/||(EB + ∑(j=1,N) (Eoj))||) where E0j is the field associated with the obstacle
oj k is a coefficient characteristic of the attractive component and k j (j = 1, ..., N) is a coefficient characteristic of the repulsive component associated with the obstacle point P0j .
In another embodiment the object point (or animate) can be given variable inertia or, for example, constant inertia when it is "far" from a target to be reached and decreasing as the target is approached. This has an effect of "smoothing" the trajectory when avoiding obstacles (the object point is entrained by its inertia) , and prevents undefined oscillatory motion about a target since the inertia falls to zero when the target is reached (which has the same effect as progressive "friction") . To this end, the invention also provides a method of moving an object point of an image to be animated towards a target point (PB) of the image, said image possibly further comprising obstacle points, the method comprising the following steps :
- defining an image field function comprising:
• an attractive component associated with the target point and of zero value at that point, and • if obstacle points are present, a repulsive component associated with each obstacle point,
- computing the speed of the object point from the equation:
Vn+ι = ka.Vn + kiEn, in which:
n+ι and Vn are respectively the speed at times n+1 and n,
• En is the value of the field at the location of the point at time n, • ka and ki are coefficients, and
- moving the object point as a function of the computed speed. ka and ki are respectively called a damping coefficient and an inertia coefficient. ka can depend on the distance d to the target and decrease as the object point approaches the target point, for example.
Once again, the invention also concerns a method of sending data concerning the motion of an object point of an image, comprising a target point and possibly obstacle points, via a communications network. The steps are those mentioned above, but the data (on the points and the speeds) is transmitted via a communications network. In the above embodiments, an image field value can be associated with any point of a shape to be animated, represented on the image, for any (discrete) time n. The field is a vector function E defined at any point of the shape or of a part of the shape. Any point that is part of the shape can be identified in a conventional system of spatial coordinates, for example three-dimensional X, Y, Z coordinates. The invention adds to these conventional coordinates "influence" coordinates or parameters which correspond to the value of the image field at the geometrical point concerned and at the time n concerned. Consequently, with these additional coordinates, it is possible to describe the influence on each point of the shape, whether these are the influences of other parts of the object or those of other objects external to the shape itself.
In a second embodiment, dynamic coordinates kA and ka, respectively referred to as the "inertia" parameter and the "flexibility" parameter, can be added to the above field or potential coordinates. The flexibility (and thus the coefficient ka) represents the fact that the object is damped to a greater or lesser degree at the point concerned. The coefficient k£ corresponds to the (mathematical) concept of inertia in classical dynamics. According to the invention, the description of the motion is therefore contained in the definition of these additional dynamic coordinates. The description of the motion is therefore economical in terms of memory space in a computing device implementing the method of the invention.
Once again, the field can derive from a potential. The method of the invention allows immediate modification of the dynamic coordinates constituted by En (the value of the field at the point concerned) or its potential and/or ka and/or k± (damping and inertia coefficients) . It therefore allows a high degree of interaction.
The object points, or the points of the shape, can be stored in memory and/or displayed on a screen or a display device and moved in accordance with the motion determined. In the case of an object described in terms of "NURBS" surfaces, the latter surfaces are defined by interpolation between sections in turn formed by interpolation from control points. The additional field (or potential) , flexibility, and inertia coordinates can be assigned to each control point so that the control points can be used to animate the surfaces created. The description obtained in this way of an object and its motion is compact, much more so than the conventional description in terms of polygons. In the conventional description, the polygons themselves constitute the database of the objects. The present compactness is highly advantageous because the object and its motion can then be stored in smaller memories. In one particular embodiment, the coefficient ka tends towards 0 as the distance d to the target tends towards 0: accordingly, the inertia (in the physical sense of the term) is felt progressively less and less as the point approaches its target . For example, the coefficient ka can be a decreasing parabolic function of d, of value zero for d=0.
A coefficient ka of the following form satisfies all the above conditions: ka = (I I/dϊ). [2 - (I H/d,)] For a coefficient ka close to 1, the field is practically proportional to acceleration.
The coefficient ka can also be made constant for any distance d greater than a characteristic distance dτ .
The attractive component of the field preferably has a potential of value zero at the target point. This choice enables the object point to be stopped when it reaches its target.
The repulsive component is preferably a function at most decreasing with the distance from the object point to the obstacle point concerned. The influence of the repulsive field in the vicinity of the obstacle point is therefore at most greater than or equal to its influence at a distance from that obstacle point.
For example, the potential associated with the repulsive component of the field, for a given obstacle point P0, has the following form, in which d is the distance between a current object point P and the obstacle point P0:
V(P) = k'/d if d < d0 V(P) = k'/do if d > d0 In another particular embodiment, at least one component of the motion of the object point along an axis of a system of axes in space is dependent only on the sign of the computed speed component along that axis. In other words, in some cases, the motion of a point P can be considered to occur, along the axis in question, only in "quantified" directions, in other words "leftward",
"rightward" , "upward" or "downward" . The motion appears to be continuous if seen "from afar", which is the case if the point P represents a pixel on a screen.
More generally, the invention also provides a method of moving an object point of an image to be animated or a method of sending data concerning the motion of a point of an image via a communications network, said image comprising a set of target points (PB) to be reached, and possibly obstacle points, the method comprising the following steps:
- selecting a first target point to be reached, and
- moving the object point by a method as explained hereinabove or determining the motion and transmitting it via a communications network. The first target to be reached is the target nearest the object point, for example.
The invention also provides apparatus for generating an animated shape or for animating a shape, and comprising the following means: - means for assigning a vector field to each geometrical point defining the shape in space,
- means for determining, or computing, the motion of each point, using an equation of motion, as a function of the field at the same point, and
- means for moving the points of the shape in accordance with the motion thus determined or for sending data relating to the shape and its motion or the vector fields via a communications network.
The invention also provides apparatus for generating an animated shape or for animating a shape comprising:
- means for determining, or computing, the motion of each of the points defining the shape in space as a function of the motion of at least one other point of the shape , and
- means for moving the points of the shape in accordance with the motion thus determined or for sending the data relating to the shape and its motion or the vector fields via a communications network.
In both cases means can be provided for initially determining the geometrical points defining the shape in space . The motion of each point can be determined as a function of the motion of the points which are the nearest neighbors of said point .
The invention also provides apparatus for moving an object point of an image to be animated toward a target point (PB) of the image, said image possibly further comprising obstacle points, the apparatus comprising:
- means for defining an image field function, comprising:
• an attractive component associated with the target point and of zero value at that point, and
• if obstacle points are present, a repulsive component associated with each obstacle point,
- means for computing the speed of the object point proportionately to the value of the image field at the object point, and
- means for moving the object point as a function of the computed speed, or for sending the data relating to the points and their speed or to the fields or to the field function via a communications network.
Finally, the invention also provides apparatus for moving an object point of an image to be animated to a target point (PB) of the image, said image possibly further comprising obstacle points, the apparatus comprising :
- means for defining an image field function, comprising:
• an attractive component associated with the target point and of value zero at that point, and
• if obstacle points are present, a repulsive component associated with each obstacle point, and
- means for computing the speed of the object point from the equation:
Vn+1 = ka.Vn + kiEn, in which:
• Vn+i n< Vn are respectively the speed at times n+1 and n,
• En is the value of the field at the location of the point at time n, and • ka and k are damping and inertia coefficients, and
- means for moving the object point as a function of the computed speed or for sending the data relating to the points and their speed or to the fields or to the field function via a communications network. ka can depend on the distance d to the target and can be such that the object point moves with decreasing inertia as it approaches the target point, for example. Apparatus of the above kind preferably further comprises means for modifying the value of ka and/or k± in real time.
The method or the apparatus of the invention is used to compute the motion of an object from the "target" of the motion, for example.
Generally speaking, the above technique can be used to compute the motion of an object from influencing fields (attractor fields or repulsive fields, as defined above) which define the environment of the object.
Accordingly, in the above example of the "target" of the motion, the "target" is an influence or an attractor field to which the object is subject. Brief description of the drawings
In any event, the features and advantages of the invention will become more apparent in the light of the following description. The description refers to embodiments given by way of explanatory and non-limiting example and refers to the accompanying drawings, in which:
- Figure 1 shows an object point and a target point in a plane,
- Figure 2 shows an object point, a target point and an obstacle in a plane,
- Figures 3 to 37 are examples, in accordance with the invention, of modeling the trajectory of an object point subject to various environmental conditions,
- Figure 38 is a diagram representing the steps of a method in accordance with the invention,
- Figure 39 is a diagram representing the meshing of a surface of a 3D object generated by a method in accordance with the invention, and
- Figures 40A and 4OB are diagrams showing the structure of apparatus for implementing a method in accordance with the invention.
Detailed description of embodiments of the invention A first embodiment of the invention to be described concerns a two-dimensional (2D) representation. Figure 1 shows a reference plane (0, X, Y) .
An object or character (or point or pixel) P, also referred to as the "animate" , with coordinates (x, y) is initially at the origin 0 and is to move towards a target PB with coordinates (xB, yB) .
In accordance with the invention, the target generates an attractive field and thereby propagates its influence throughout space in accordance with a particular law.
A field E (vector) of this kind can derive from a potential V (scalar) using the equation E(P) = -VV(P) where V is the "Gradient" operator. This means that the components Ex, Ey, etc. of the vector E(P) are given by the equations: Ex = - (dV/δx) , Ey = - (dV/dy) , etc.
The potential produced by the target is of the form VB(P) = k.||PPB|| , for example, where k has a non-zero value. A potential of this kind, which is an increasing function of the distance ||PPB|/ represents the fact that the influence of the target increases with the distance of the object point from it. In field terms (in 2D) : Ex = ~ {dVB/dx) = -2.k.(x-xB), and
Ey = - (dVB/6y) = -2.k. (y-yB)
The field lines generated by the target PB then constitute a bundle of straight-line segments passing through PB. In this example the field is radial and oriented toward PB. Its intensity is zero at PB and increases with distance.
The field E is proportional to the speed (dP/dt) of the point or of the object, for example. Under these conditions, the speed of the point is obtained, in the case of the above potential, from the equations:
(dx/dt) = -λ. (x-xB) and (dy/dt) = -λ. (y-yB) (1) If the field is zero, the speed is zero also, and the character therefore stops (has no inertia) . For this, for a target PB to be reached a field function is used that is zero at PB. This is achieved if the potential function is a minimum or a maximum at PB, for example . Integrating the above equations yields : x(t) = xB+B.exp (-λ. t) and y(t) = yB+B' .exp(-λ.t) in which B and B' are integration constants. Accordingly, the point reaches its attractive target. Its speed is initially high (it is equal to the vector of the components [λxB, λyB] on leaving the origin) and then decreases progressively toward 0.
In a variant the above equations could yield the direction of the point, rather than the speed, the modulus of the speed being constant (or in any event controllable.) The modulus δ of the speed expresses the required incremental motion of the object point. For he- speed norm to be made equal to δ, the following equations of motion apply, and can readily be generalized for three dimensions:
(dx/dt) = (δ/||E||) .Ex and (dy/dt) = (δ/||E||).Ey (2)
In one particular embodiment, in some cases, the motion of a point P may be deemed to be possible only in "quantified" directions, i.e. "leftward", "rightward" , "upward" or "downward" . The motion appears continuous if seen "from afar", as is the case if the point P represents a pixel on a screen. Under these conditions, a motion algorithm needs only to look at the signs of the quantities (dx/dt) and (dy/dt), i.e. the signs of the quantities Ex and Ey. For example, if Ex>0 and Ey>0, the pixel must be moved "rightwards" and "downwards" . Until the target is reached, the signs of the quantities Ex and Ey are examined and the pixel is moved accordingly.
The situation will now be described in which there is an obstacle centered at P0 (with coordinates (x0, y0) ) , the point P having to reach the target by circumventing or avoiding the obstacle (Figure 2) .
An obstacle P0 generates a repulsive field whose influence decreases with distance and is higher locally, in the vicinity of the obstacle, for example. There can in particular be an area or a distance of influence around the obstacle beyond which the repulsive field of the obstacl e has no effect . It is a potential field, for exar nple : where I PPOII < dj. (infli from P0) :
Figure imgf000018_0001
elsewhere :
Figure imgf000018_0002
A function of the above kind is not discontinuous at the influence barrier (which would produce an infinite field at that point) . However, the gradient (the field) gives rise to a discontinuity and this can suddenly repulse the animate, or the point, as it crosses the influence barrier.
A function V0(P) of this kind takes an infinite value for PP0 = 0. However, in the case of an obstacle, it is in principle avoided and therefore never reached.
In the area of influence, the gradient of the function V0(P) = k'.UPPofl"1 gives a field:
E0(P) = + k' .PP0. ||PP0| 2 (the + sign indicates a repulsive field: k' must be greater than zero for the field to be a repulsive field) . To summarize, the field produced by the obstacle P0 is:
- for o < ||PP0|| < di, E0 = k' .PP0.||PP0||"2
- for di <|PP0||, E0 = 0. The total field E to which the character or the point is subject is the sum of the various fields (principle of additive fields) :
E = EB + E0. Whence : (dx/dt) = (δ/||(EB + E0)||).(EB + E0)x
(dy/dt) = (δ/||(EB + E0)||).(EB + E0)y (4) (dz/dt) = (δ/||(EB + E0)||).(EB + E0)z Consider therefore the most general case of the point P attempting to reach a target PB (generator of a potential VB(P) = k.||PPB||2) in a universe (a 2D universe, for example) containing an obstacle P0. The influence of the obstacle (generator of a potential V0(P) = k' . is represented by equations (5) :
(dx/dt) = (δ/|| (EB+E0J H ) . [-k. (x-xB)+k' . (x-xo) . ||PP0||~2] (dy/dt) = (δ/|| (EB+EO) II ) . [~k. (y-yB)+k' . (y-y0) • ||PPo||"2] (5)
For a qualitative analysis, only the signs of these quantities are considered:
Sgn (dx/dt) =Sgn[-k. (x-xB)+k' . (x-x0) .||PPo|"2] Sgn (dy/dt) =Sgn[-k. (y-yB)+k' . (y-y0) . ||PPo||"2] (6) Because of the discontinuity of the field near the influence barrier of the obstacle, the moving point P can suffer a sudden change of trajectory there. There will then be the "surprise" of encountering an unexpected obstacle. This is understandable because the concept of action at a distance, inherent to the field concept, is eliminated beyond the influence barrier, given the definition of that barrier.
The discontinuity of the field can be expressed as a vector ΔE with components :
ΔEx = (xd - x0) . dX2 and ΔEy = (yd - y0) • d ~2 (7) where xd and yd are the components of the point P at the distance d± from P0 (at the influence barrier) .
If the amplitude of the components ΔEX and ΔEy is such that Sgn (dx/dt) and Sgn (dy/dt) change, the situation is that of a kind of "impact" (although there is no contact), with a change of direction. Entering the influence area causes the trajectory to be deviated. In the case of a plurality of obstacles (N obstacles) P0ι, Po2> •••, ot generalization yields the following equations (in which the value k'-, is zero outside the area of influence of the obstacle PθD) : (dx/dt) =N. {-k. (x-xB)+Σ(D--ι,N) [ kN . (χ-χ0D) . ||PPθD||~2] }
(dy/dt)=N.{-k. (y-yB)+∑(D=ι,N. [k'D. (y-yθD) . || PP031|-2] } (8) (dz/dt)=N. {-k.
Figure imgf000019_0001
[ kN . (z-zθD) . || PPo31|"2 } with N = (δ/|| (EB(D=1,N) (E0D))||) where Eθ3 designates the field associated with the obstacle PθD .
The model explained above ignores the influence of the inertia of an animate or a point. The corresponding trajectory is computed by deeming the total field E to which the point is subject to be directly proportional to the direction of its speed v. In mathematical terms, the speed vector v is given in this case by the equation: v = (δ/||E||)E in which the coefficient (δ/|E||) is intended to produce an incremental movement equal to δ.
The algorithm for computing Pn+1 as a function of Pn (also called the Actuator of the animate) is therefore as follows (Pn denotes the current position and Pn+1 the next position) :
Pn+ι = Pn + (δ/||En||)En (9) where En is the total field at Pn.
In another embodiment the object point has variable inertia, for example inertia that is constant "far" from a target to be reached and that decreases as the target is approached. This "smoothes" the trajectory when avoiding obstacles (the animate is entrained by its inertia) and prevents any possibility of undefined oscillatory motion about a target since its inertia decreases to the point of becoming very low or even zero once the target has been reached (this has the same effect as progressive "friction").
To this end, a target PB has a characteristic distance dx from which the inertia decreases.
Also, the Actuator of the animate then has the following structure:
1) Vn+1 = ka.vn + En
2 ) Pn+ι = Pn + (δ/ || vn+1 || ) . vn+1 ( 10 ) The elasticity or damping coefficient ka depends on the distance ||PnPB||. If ||PnPB|| > dλ the value ka=l can be taken, for example. On approaching the target, ka falls to 0 so that the influence of the inertia is felt progressively less and less. The coefficient ka therefore progressively reduces the inertia of the animate as it approaches the target to be reached. If the value of ka is very low, the field is practically proportional to the speed, and if ka is very close to 1 the field is practically proportional to the acceleration. It can be shown that if ka = 0 the situation is as previously where the inertia is zero. Generally, a value of ka is taken such that
0 < ka < 1. The cases in which ka = 0 or ka = 1 have already been commented on above . For ka > 1 the system diverges .
The law by which ka decreases as a function of ||PnPB|| is a parabolic law, for example:
K = ( II PnPBll /d! ) • [2 - ( | PnPB|| /dI ) ] ( 11 )
In a variant, an additional coefficient kx in the range from 0 to 1, for example, is introduced that is independent of the target and such that the speed of the animate is computed from the new equation (12) :
Vn+ι = kϊ . kavn + En ( 12 )
This provides greater flexibility in adjusting the inertia of the animate.
In the method of the invention, the universe in which a point or an object moves is represented in field terms. If the universe is made up of obstacles to be avoided, for example, the fields are repulsive fields.
The algorithm for moving an animate at the object point can be defined by the following rules. At time n the animate is in state ψn. This state comprises a set of kinematic data, for example, namely the position Pn of the animate, its speed vn and its incremental movement δ.
A chain of action (or "actuator") of the animate capable of producing its new state ψn+1 at time n+1 as a function of the obstacles and the target to be reached has the following structure, for example:
1) Compute the total field En (attractive and repulsive component) at point Pπ. 2) Compute the new speed using, for example, the equation: vn+ι = kaVn + En where ka =
Figure imgf000022_0001
] for ||PnPB|| < dτ and, for example, ka = 1 otherwise.
3) Compute the new position Pn+1 = Pn + (δ/|vn+1|) .vn+1 In a more general embodiment, the speed of the object point can be computed from the equation: vn+ι = kaVn + kiEn in which:
v n+ι and Vn are respectively the speed at times n+1 and n, • En is the value of the field (with its attractive component (s) and/or repulsive components) at the location of the point at time n, and
• ka and ki are respectively a damping coefficient and an inertia coefficient. The function of ka has already been explained. A value is generally taken such that 0 < ka < 1, the values ka = 0 or 1 also being possible. Once again, ka can be made dependent on the distance, for example using equation (11) above, with the same effects as already explained.
The coefficient ki (> 0 and generally in the range from 0 to 1) corresponds to inertia in classical physics (in the mathematical sense of the term) .
If ki is low, inertia is high (and vice versa) and if ka is low, damping is high (or "flexibility" is low) and vice versa.
Note that if ka = 0, the effect of the inertia is zero although the mathematical coefficient ki has a nonzero value. Another coefficient ke can also be introduced, by means of the following equation: vn+1 = kekaVn + kiEn in which: ka and k have the same meaning as above, ke is a multiplier coefficient for ka.
Examples In Figures 3 to 34, which illustrate these examples, there are one or more obstacles centered on P0 (or Poi) and a target at PB.
The circle around P0 is of radius din (influence barrier) and the circle around PB is of radius dτ . The first series of examples assumes that :
1 - An animate is initially located at position
P (10, 10, 0) and has a zero initial speed. Each run of the algorithm produces a movement δ = 1.
2 - A target to be reached is at position PB (320, 180, 0). The influence coefficient k is made constant and equal to 2.5. The potential generated by the target is of the form VB(P) = k|PPB||2.
3 - There is an obstacle to be avoided at position P0 (200, 90, 0). The potential generated by the obstacle is of the form V0(P) = k'.fPPoU"1 if ||PP0|| < di (influence barrier) and V0(P) = k' .di"1 (a constant) elsewhere.
4 - The computation algorithm is as follows:
1) vn+1 = kaVn + En (with En = -Wn)
2) Pn+ι = Pn + (δ/||Va+1||) .Vn+1 The coefficient ka depends on the distance ||PπPB||:
- If ||PnPB| > dχ ι ka = 1.
- If not: ka = (||PnPB||/dI).[2 - (llPnP /dϊ)]. Example 1 (Figure 3) : dτ = 0 , dλ = 16
On this first trajectory, the animate goes to the target along a straight line segment without being influenced by the obstacle (it does not enter its area of influence) . This very special case occurs at certain points of an animation sequence. However, in the general case, the trajectory of the object point (s) will encounter the area of influence of the obstacle and the trajectory will therefore be deviated (see all subsequent examples) .
Example 2 (Figure 4) : dλ = 50, k' = 30 000, dτ = 90 There is a braking effect that prevents oscillation about the target.
Example 3 (Figure 5) : dx = 50, k' = 30 000, dτ = 130: the area of decreasing inertia is larger. The previous braking appears less sudden.
Example 4 (Figure 6) : dλ - 50, k' = 30 000; the area of decreasing inertia is further enlarged, taking dλ = 170. Because the inertia reduces sooner before reading the target, the trajectory of the animate is curved accordingly.
Example 5 (Figures 7 and 8) : dx = 50; a very large value is now taken for dt, namely dτ = 1000 (the circle centered on the target is no longer visible in this case) . The inertia is "negligible", so to speak, as a result of which the animate can hardly penetrate the obstacle.
However, the animate is "blocked" by the obstacle because the coefficient of influence of the obstacle has a high value (k' = 30 000, Figure 7) . If this coefficient is divided by 10 (k' = 3000, Figure 8) the animate "penetrates" the obstacle despite the low inertia.
Example 6 (Figure 9) : dτ = 1000, but the influence barrier of the obstacle is increased: here d = 130 and the inertia is still "negligible" . Although the value of k' is high (30 000), the animate penetrates the obstacle.
This is explained by the strong contribution of the target, because the animate is far from it (the field generated by the target increases with the distance from the target) .
Example 7 (Figure 10) : dt = 130, k' = 30 000; a lower value of dτ is again used (dτ = 120) , which gives the animate a non-negligible inertia. Example 8 (Figure 11) : di = 130, k' = 30 000; here the value of dτ is fairly critical. For dτ = 100, the animate has difficulty reaching its target. Its inertia decreases slowly because of its weak penetration into the decreasing inertia area. Example 9 (Figure 12) : dA = 130, k' = 30 000; for dτ = 99, the animate has even more trouble reaching its target because its path, on leaving the area of influence of the obstacle, is virtually tangential to the area in which its inertia begins to decrease.
Example 10 (Figure 13) : di = 130; now we take dτ = 180 and multiply the coefficient of influence of the obstacle by 10, which gives k' = 300 000. Entering the area of influence of the obstacle causes a "rebound" (a large change in direction in a small region of space) . The animate is thereafter subject to the attraction of the target and to a loss of inertia. Example 11 (Figure 14) : di = 130; we retain dτ = 180 and impose an "enormous" value of the coefficient of influence of the obstacle, namely k' = 107. A succession of rebounds is obtained, which are in fact largely due to the inertia of the animate. Example 12 (Figure 15) : k' = 107; the size of the area of influence of the obstacle is slightly increased (d = 150) as is that of the area of decreasing inertia (dj = 250) . Figure 15 shows the influence of the reduced inertia, associated with the very great influence of the obstacle.
Example 13 (Figure 16) : di = 150, k' = 107; for a still higher value of dτ (dτ = 300) , the influence of the inertia is less marked. The amplitude of the rebounds is smaller and the animate tends to come close and closer to the obstacle.
A second series of examples (Examples 14 to 18) concerns the possibility of varying kτ in accordance with equation (12) above.
The parameters of these examples are as follows: 1- An animate is initially at position P (10, 10, 0) and has a zero initial speed. Each run of the algorithm produces a movement δ = 1.
2- A target is at position PB (260, 240, 0) . The coefficient of influence k is set at 2.5. The distance dτ is set at 160. The potential generated by the target is of the form VB(P) = k||PP |2
Bl
3- An obstacle is at position P0 (200, 90, 0) . The coefficient of influence k' is made constant and equal to 70 000. The potential generated by the obstacle is of the form V0(P) = k' . UPPQH"1, if ||PP0|| < di t with d± = 130.
4- The computation algorithm is as follows: 1) vn+1 = k!.ka.vn + En
2 ) Pn+ι = Pn + (δ/ || Vn+1 || ) . Va+1
Examples 14 to 16 (Figures 17 to 19) : these examples respectively correspond to kτ = 1, kτ = 0.90, kτ = 0.60.
As in the next example, cases where kz > 1 can also be considered.
Example 17 (Figure 20) : kτ = 1.02
The animate is less sensitive to the obstacle. Its path in the area of influence of the obstacle resembles a straight line segment. A third series of examples concerns a target to be reached and a plurality of obstacles to be avoided.
These examples assume the following parameters :
1 - An animate initially at position P (10, 10, 0) has zero initial speed. Each run of the algorithm produces a movement δ = 1.
2 - A target to be reached at position PB (260, 240, 0) . The coefficient of influence k is made constant and equal to 2.5. The potential generated by the target is of the form VB(P) = k||PPB||2. 3 - Each obstacle to be avoided creates a potential of the form V0(P) = k'.flPPol"1 if ||PP0|| < dτ (influence barrier) and V0(P) = k.dj"1 (a constant) elsewhere. 4 - The computation algorithm is as follows: 1) vn+1 = k!.ka.vn + En (with En = -Wn) 2) Pn+1 = Pn + (δ/||Vn+1|).Vn+1
The coefficient ka depends on the distance ||PnPB||. If |PnPB|| > dI t ka = 1.
If not, ka = (llPaPβll/d!) . [2-(|PπPB||/dI)] .
Figure imgf000026_0001
For examples 18 to 20 there are two obstacles: one at P0, with coordinates (200, 90, 0) , and for which di = 130, and the other at P'0, with coordinates (120, 180, 0) and for which d'i = 100. The distance dτ to the target from which the inertia begins to decrease is dτ = 100. The coefficients of influence of the two obstacles are k0 and k'0. Example 18 (Figure 21) : k0 = 30 000 and k'0 = 20 000.
The obstacle P0 at coordinates (200, 90, 0) has a greater influence here than the obstacle P'0- Tne animate therefore avoids it more noticeably. However, coming dangerously close to the second obstacle, it is there subject to a kind of "rebound", the amplitude of which is nevertheless limited because of the value kτ (equal to 0.9 and not 1.0).
Example 19 (Figure 22) : The two obstacles have the same coefficient of influence (k' = 20 000) . The "rebound" has disappeared.
Example 20 (Figure 23) : k0 = 20 000, k'0 -= 20 000
The obstacle at coordinates (120, 180, 0) has the greater influence. Examples 21 and 22 concern three obstacles P01, P02,
P03 that are relatively close together.
Example 21 (Figure 24) : the parameters of the obstacles are:
P01: (X=200, Y=90, Z=0) (k'-. = 20 000, dn = 130)
P,o2 (X=120, Y=180, Z=0) (k'2 = 30 000, di2 = 100) P Ό,3 (X=180, Y=190, Z=0) (k'3 = 20 000, di3 = 80) The target is reached after a few circumvolutions. Example 22 (Figure 25) : the first two obstacles are the same as previously, but the parameters of the third obstacle are modified:
P03: (X=210, Y=190, Z=0) (k'3 = 28 000, di3 = 60) P03 is then the most bothersome and has greater influence, but over a shorter distance.
A fourth series of examples (Examples 23 to 24) concerns a target to be reached and a block of obstacles to be avoided.
A block of 15 identical obstacles has been chosen, with the centers of the obstacles regularly spaced by the amount 50 in a grid with 3 rows each of 5 obstacles. The influence barrier of each sphere is fixed at dA = 25, as a result of which the figures show a block of 15 tangential circles. The coordinates of the center of the first circle, top left, are defined as (100, 100, 0) .
The start is still at P (10, 10, 0), the initial speed is zero and each run of the algorithm produces a movement δ = 1. The target is PB (325, 225, 0) , the coefficient of influence k is made constant and equal to 2.5 (unless otherwise indicated), and the distance dτ is 100.
Example 23 (Figure 26) : kx = 1.0 and the value of the coefficient of influence of each obstacle is k' = 20 000.
The high inertia of the animate prevents it from being greatly deflected by the centers of repulsion, especially as the value of k' is not excessively "high" .
In examples 24 to 31 all the parameters are the same except for kτ .
Example 24 (Figure 27) : kτ = 0.99 and this small difference in kτ gives an entirely different trajectory. The animate is deflected to the left, not to the right as previously. The inertia, which is still high, has a relatively visible effect in the rounding of the end of the trajectory.
Example 25 (Figure 28) : kτ = 0.98 and the local deviations are clearly seen to be "sharper"; in fact they are less smoothed. Example 26 (Figure 29) : kj = 0.97 and the loss of inertia is increasingly felt. The local avoidances are relatively unsmoothed, and less and less so as the animate approaches the target. It must be remembered that in the area near the target the inertia decreases in accordance with a parabolic law. Example 27 (Figure 30) : kτ = 0.96 and the motion becomes almost erratic, especially in the vicinity of the target. Very close to the target unrealistic oscillations occur and indicate that the animate is finding it difficult to find its way.
This phenomenon is even more marked in Figures 31 to 34, in which kτ decreases.
Example 28 (Figure 31) : kτ = 0.90 and the behavior of the object is more and more erratic.
Example 29 (Figure 32) : kx = 0.80. The trajectory comes increasingly close to the edge of the obstacles because of the "low" inertia. In fact the animate oscillates around the edges, making sudden changes of direction.
Example 30 (Figure 33) : kτ = 0.50. The animate has become lost in a local minimum from which it has not been able to extricate itself because of its low inertia. The next example gives a solution for escaping from this local minimum.
Example 31 (Figure 34) : kτ - 0.50 (as in the previous example) . However, the influence of the target is doubled by taking k = 5.0 (instead of 2.5). This enables the animate to be
"pulled" out of the local minimum. Note that it is equivalent to doubling the value of k (the coefficient of influence of the target) and halving the value of k' (the coefficient of influence of the obstacles) . A relatively low value of k (k = 0.5) therefore produces a somewhat "disordered" trajectory and a risk of plunging into a potential well. The following examples describe what happens if the value of k' (the coefficient of influence of the obstacles) is reduced. For the remainder of the examples the value k' = 5 000 is therefore taken. Example 32 (Figure 35) : kτ = 0.50 (the same value as previously), but the obstacles have less influence because of the value of k' (k' = 5000) . Accordingly, the trajectory has less of an oscillatory character, except very close to the target.
Example 33 (Figure 36) : kj is increased again: kτ = 0.80 (and k' = 5000) .
The animate has a more sinuous trajectory. Example 34 (Figure 37) : kτ is increased again (kτ = 1) , in conjunction with a relatively low value of the coefficient of influence k' of the obstacles (k' = 5 000) .
The high inertia and the low influence of the obstacles cause very little deviation, except near the target, where the inertia decreases in accordance with a parabolic law.
The points moved in the above examples and the targets and obstacles can correspond to points of an animated image which is represented on a screen.
The principle of transformation described above can be applied to any type of representation and animation of a shape. Points describe the shape in question, and are obtained by CAD, for example, or by any other type of modeling; the image can also be a digitized image of a real object, in which case the image is equivalent to the data of the set of its pixels with the corresponding intensities.
To this end, in generating the shape in question, or after generating it, some or all of the points that constitute it are allocated a potential component from which must be deducted the value of the image field at the point concerned and the values of the parameters ka, k , kτ and ke. All these parameters, with the standard parameters (Cartesian coordinates, for example) identifying points in the (2D or 3D) physical space chosen provide a dynamic description of the shape, i.e. a description including its dynamic parameters.
The four parameters ka, k, kτ and ke can be reduced to two variable parameters (damping and inertia coefficients) by taking kτ = ke = 1. As explained in detail above, the image field at a point can result from the influence of a target point, with or without obstacle points, on the points of the shape .
This is the case, for example, with the points of a first shape influenced by a second shape external to the first one, the influence consisting in attraction or repulsion of the first shape by the second one. A number of points of the second shape can define a field at each point of the first shape, which then evolve as explained above. This situation is illustrated by the fourth series of examples, in which the second shape provides a block of obstacles to be avoided.
However, in accordance with another aspect of the invention, the image field can depend on the motion of the shape itself, without there even being any question of targets and/or obstacles in the image. In particular, the image field can be defined at each point as a function of the motion of at least one other point of the shape, for example the motion of the points which are the nearest neighbors of each point. In this case, the field then constitutes an array of mutual influences of the points of the shape .
Once again, the motion of each point of the shape is determined by the resultant field at that point and the field can have attractive and/or repulsive components.
For example, maintaining points of the object at a distance is effected by an additional component of the repulsive field.
As in the situation described above, each point of the shape can be moved at a speed proportional to the image field at that point .
Mathematically speaking, in this case the speed • vector v is given by the equation: v = (δ/|E||)E in which the coefficient (δ/|E|) is adapted to produce an incremental movement equal to δ. The algorithm for computing Pn+1 as a function of Pn is then as follows (Pn denotes the current position and Pn+1 the next position) :
Pn+ι = Pn +(δ/||Ea||)Ea where En is the total field at Pn In a variant enabling the effect of inertia to be taken into account, each point is moved, from an instant n to an instant n+1, in accordance with the following equations :
1 ) Vn+1 = ka . vn + En 2 ) Pn+1 = Pn + (δ/ ||vn+1 || ) . vn+1
The coefficient ka is the coefficient of elasticity or the damping coefficient. If ka is very low the field is practically proportional to the speed and if ka is near 1 the field is practically proportional to the acceleration. If ka = 0, this amounts to the situation in which the effect of the inertia is zero.
In another variant, an additional coefficient (denoted kτ and in the range from 0 to 1, for example) is introduced and is independent of the target and such that the speed of the animate is computed from the new equation (14) :
Vn+1 = kx.kava + En (14)
Once again, this allows great flexibility in adjusting the inertia of the animate. A motion algorithm can then be determined by the following rules:
At time n (respectively n+1) , the point is in the state ψn (respectively ψn+1) . This state is constituted by a set of kinematic data, for example, namely the position Pn and speed vn of the object point. ψn+1 is obtained by: 1 ) Computing the total field En at point Pn
2 ) Computing the new speed vn+ι = kava + kiEn (15)
3 ) Computing the new position Pn+ι = Pn + vn+1 ( 16 )
The influence of ka or of the concept of flexibility comes into play, for example, if Pn describes the position of the end of a flexible blade the other end of which is fixed. If ka is small, a pulse applied to the free end produces a motion that is very quickly damped: the blade is not flexible (hard) . If ka is greater, the motion is an oscillatory motion and is damped more slowly: the blade is flexible.
More generally, the speed can be computed from the equation:
Vn+ι = kaVn + k^-. (14') or the equation:
Vn+1 = kIkaVn + kiEa (14") in which the various coefficients have the meanings already defined.
In particular, ka can depend on the distance, for example according to equation (11) above.
The situation in which the image field depends on the motion is illustrated below with one example of application to a flexible membrane model.
It is possible to combine this situation with that of the influence of target point (s) and/or external obstacle (s) . For this the field E is defined appropriately and integrates all the components. It is therefore possible to add to the "internal" motion an "external" motion described in terms of target and obstacles, for example, as described above. The resultant field at any point is the sum of all the fields, for example (the principle of additive fields) . Figure 38 is a diagram showing steps of a method in accordance with the invention.
A first step SI concerns defining the object or the shape, for example by points with coordinates in space. This object, or shape, can be displayed on a display unit .
During a second step S2 a potential or a field is defined for all or part of the shape. A potential or field component is assigned to these points.
Then, in step (S3) , the values of the parameters ka, ki and where applicable kτ and ke are assigned to the points. The speed or motion or displacement is then computed or determined (step S4) .
This motion or displacement can be displayed (step S5) .
The field parameters and/or the dynamic parameters can be modified (step S6) , in which case (Y) the speed and/or the displacement (S4) are recomputed. Otherwise (N) , display continues.
These steps can be modified as required. Moreover, step S4 of computing the motion or displacement with the aid of various algorithms is described in detail above.
The method explained above can be applied to any form of parametric surface defining an object graphically.
In particular, it can be applied to 3D graphical objects generated or modeled using spline functions.
This technology, combined with the method of the invention as explained above, can be used not only to create 3D objects but also to transform or animate them, and all this in real time. To be more precise, the geometry of an object is preferably described by means of NURBS surfaces.
Using NURBS, the geometry of a 3D model is no longer defined by polygons, which are demanding in terms of processing, but by mathematical curves generated from small amounts of information that constitute the true data of the object.
This data defines a description of the object that is much more global than the three spatial coordinates of the polygon technique. This information contains not only a description of the geometry of the object (which can give much higher resolution than the polygon technique) but also a description of the coded or encoded general shapes .
NURBS (Non-Uniform Rational B-spline) curves and surfaces were conceived specifically for 3D computer modeling. They are based on surfaces generated from computation algorithms; they have specific properties indicated by their generic name (N.U.R.B.S.) :
- "B-splines" are defined as a succession of Bezier curves . - "Rational" means that the equation representing the curve or the surface is expressed in the form of a ratio between two polynomials. A rational equation of this kind provides better modeling of some large surfaces and curves, in particular conic sections, spheres, etc. - "Non-uniform" means that the range of a control point of the surface is variable. Surfaces and curves which are uniform (which is not the case with NURBS) are not invariant in a perspective projection, which is an important restriction on interactive 3D modeling. NURBS surfaces can be regarded as the results of interpolation between sections in turn formed by interpolation from single "control points" .
A 3D model using "B-splines" can be defined by the following elements, schematically represented in Figure 39:
• Three-dimensional objects 2, known as "bones", organized into a hierarchy.
• Each bone is a series of sections. A bone comprises at least 3 sections: - two nodal sections 4, 6, one at each end, and
- at least one intermediate control section 8. There are generally several intermediate control sections in order to define a "bone" precisely.
For example, a human head would be defined by eight control sections to achieve sufficiently accurate rendering . • Each section is made up of a number of control points 6-1, 6-2, 6-3 8-1, 8-2, 8-3.
For a human head, for example, 12 control points can be taken per section, in order to obtain a precise description of the geometry of the object. Thus a human head could have, on average, 100 control points
(depending on the required precision, which would depend on the size of the head within the overall image) .
Polygons can thereafter be generated from the combination of sections and control points. These polygons are organized into a series of alternate points using the "STRIP" model to accelerate their rendering on a graphics screen.
The sections and the control points define the control meshing of the object. The interpolation process which generates a surface is as follows :
1. For each section, the points of the surface are computed using second degree "B-spline" theory.
• For nodal sections, these points are really on the surface (they are the "interpolated points" (10,12)).
• For control sections, on the other hand, these points are control points (the interpolated control points 14) .
2. Intermediate sections (interpolated sections 16, 18) are generated from each interpolated point and interpolated control point of each section. Each point of the intermediate sections is really on the surface.
The "bones", sections and control points are the three elements that define the complexity of a 3D model . They generate polygons; the size of the polygons generated depends on their number.
Control points and sections can be used to create and transform 3D objects.
The algorithmic and/or mathematical method of creating a surface of a 3D object is as follows:
1. "Spline" generation kN 3D points are generated from N control points by interpolation (k is a factor depending on the required precision of the object, which can be dependent on the distance of the object from the camera, for example, or the power of the PC workstation) . The objects are generated mathematically and can therefore have a parameter space in addition to the 3D geometrical space in which they are displayed.
Accordingly, each 3D point can be associated with an eight-dimensional vector represented by eight coordinates :
• spatial coordinates: X, Y, Z
• texture coordinates: U, V
• coordinates of the tangential vector: Xt, Yt, Zt In reality, for a "spline" , only one texture coordinate (V) is interpolated and the other is kept constant. Thus the eight-dimensional vector is organized as two vectors :
• One of four dimensions (coordinates: X, Y, Z, V)
• The other of three dimensions (coordinates: Xt, Yt, Zt)
The interpolation process is the same for the four coordinates of the vector (X, Y, Z, V) ; it will also be identical for the three coordinates of the other vector.
2. Surface generation r(M-l) + 1 interpolated sections are generated from
M control sections. The factor "r" depends on the precision of the description of the object, which can depend on the distance of the object from the camera, for example . The total number of 3D points for the surface is then k.N[r. (M-l) + 1] .
3. Normal vector computation 4. Perspective computation
Each visible 3D point can be projected into the two- dimensional frame of reference of the camera.
5. Light computation Application of the animation method of the invention to objects described by means of one or more NURBS surfaces provides a very compact description of the objects: an object so described, regardless of its complexity (whether in the order of one hundred thousand polygons or two thousand) can be stored in the form of not more than 5 Kbytes of computer data, for example, which is seven hundred times less than when. using the conventional polygon technique (the above values depend on the required precision) . This data is sufficient to define a character entirely, or a three-dimensional shape, which can then be subjected to all kinds of transformation, and all this in real time.
One example of an application concerns a flexible membrane model . Consider an equilibrium geometrical shape described as a Bezier surface. This surface is a series of control sections ... Sk_λ , Sk, Sk+1, ..., each section Sk comprising control points ... P[k(j-i)]0, P[kj-o< P. J+DJO. in which the subscripts 0 indicate that the control points are in equilibrium.
Variation of the control point Pkj about its equilibrium position P[kj]0 is written as the difference δPk = Pkj - P[kjjo- If
Figure imgf000038_0001
membrane model is required for which any local variation of its shape propagates progressively, whilst tending to minimize the offset relative to its equilibrium position, each morphic point Pj can be made subject to the influence field:
Ekj = δPk(j+1) + δPk(j-1) + δP(k+1)j + δPo-.uj - 4.δPkj The above equation can be interpreted as the variation of the curvature of the morphic point Pk . Ekj is expressed as a function of the point Pkj itself and its four closest neighbors. In this example, the influence field Ekj is therefore a mutual influence field whose origin is the motion of the adjacent morphic points. This motion is interpreted here as a deformation. Here only a mutual influence has been described, but an external influence is of course feasible, for example in the form of a gravity field EG which would simply be added to the field Ekj . Each point is therefore intrinsically subject to the influence of the fields created by the motions of neighboring points, producing a global effect of flexibility or of rigidity, of slow or fast damping, depending on the values chosen for the dynamic parameters ki and ke of each point Pk .
From an algorithmic point of view, the spatial coordinates of all the points Pj can be calculated (P[kjjn represents all the spatial coordinates of the point Pkj at time n) , in the following manner. At time n these coordinates are expressed as the sum of the equilibrium position and its variation:
P[kj]n = P.kj-o + δP[kj]a; as P[kj]0 is known, it is sufficient to calculate δPtkj)n. Let V[kj]a be the speed of the variation δP[kj]a; by applying equations (15) and (10) to the variations δPkj :
V [kj]n = (ka)kj V[k.j] („_!) + (ki)kj I.E[kj]a
The value of the coefficient I (field intensity) can be set at 0.1, for example. Also:
E[kjjn = fδPtk(j+]) + δPk(j-1) + δP(k+1)j + δP(k-1)j - 4 δPkj]n δP[kj]n = δP[kj] (j-.-L) + V(kj]a
Whence: P[kj)n = P[kj]0 + δP[kj)n The method of processing or animating images in accordance with the invention can be implemented using apparatus like that shown in Figures 40A and 40B.
Figure 40A represents a graphics workstation comprising a microcomputer 20 appropriately configured for generating and processing, using a method in accordance with the invention, two-dimensional or three- dimensional graphics objects, an output peripheral device 22 and control peripheral devices (keyboard 24 and mouse 25) . The microcomputer 20 has a computation section with all the electronic, software and other components needed for generating images and processing or animating the images so obtained.
To be more precise, the system uses a PC type microcomputer of moderate power. The microcomputer comprises a central processor unit 20 which comprises a microprocessor 26, a memory 28, an input peripheral device, for example of the hard disc type 32, connected to a bus 30. An output peripheral device, for example of the screen type 22, or display apparatus controlled by a video card is used to display information. The microcomputer also has control peripheral devices, in this instance the keyboard 24 and the mouse 25. The programming language used is the C++ language, together with the assembler language for Pentium microprocessors. Models, in particular models based on splines, can be written to and read from a hard disk. The generated models are displayed on the screen 22 by means of the graphics subsystem, in other words:
- Either using a ray tracing algorithm which writes the points directly into the graphics memory of the computer so that they are displayed on the screen by the video card (hardware part of the graphics subsystem) .
- Or using algorithms controlling control software (API) of a 3D card (able to display three-dimensional information), i.e. a card dedicated to displaying polygons rather than points; the 3D card thereafter converts the polygons into points to be displayed on behalf of the video card. Note that it is not the splines that are "sent" to the 3D card, but polygons (triangles) generated for display from the splines themselves . The control peripheral devices, in particular the keyboard 24 or the mouse 25, are used to manipulate the objects, for example to select and move the morphic points in the 3D space represented on the screen, the attractive or repulsive fields of the system, etc., or to show and clear a pull-down menu, i.e. a display area made up of the parameters of the morphic points. These can also be varied using other keys of the keyboard 24. From the software (application) , the object is loaded from the hard disk into the main memory of the computer and displayed on the screen. The manipulator then uses the controls (control peripheral devices) to carry out the required operations. The program comprises the following facilities, for example:
- Initializing the application.
- Loading a model described by the method.
- Displaying a model : • Determining, from the splines, initial settings of their parameters and the algorithms of the method, the three-dimensional elements (polygon) .
• Transforming the three-dimensional elements into two-dimensional elements which can thereafter be displayed on a screen.
• Displaying the two-dimensional elements generated in this way, either using a ray tracing algorithm or using a library of functions and dedicated hardware cards commonly used in this field (3D cards) .
• Manipulating the objects (bones, sections, morphic points, fields, textures, light) by modifying their parameters (texture coordinates, position, length, ki; ka, etc.).
- Quitting the application.
A program for implementing the method of the invention is resident or stored on a storage medium (for example: diskette or CD ROM or removable hard disk or magnetic storage medium) which can be read by a data processing system or by the microcomputer 20. The program comprises instructions commanding the microcomputer, for example:
- to determine geometrical points defining a shape in space,
- to assign a vector field to geometrical points of that shape,
- to determine the motion of points in accordance with an equation of motion depending on the field at that point , and
- to move the points of the shape in accordance with the motion thus determined.
The shape or the points are displayed on the graphics screen 22 in real time. The method of the invention enables the motion of the object to be displayed in real time. Or the program comprises instructions commanding the microcomputer, for example:
- to determine geometrical points defining a shape in space,
- to determine the motion of points of that shape as a function of the motion of at least one other point of the shape, and
- to move the points of the shape in accordance with the motion thus determined.
Once again, the shape or the points are displayed on the graphics screen 22 in real time. The method of the invention enables the motion of the object to be displayed in real time.
Or the program comprises instructions commanding the microcomputer, for example, to move an object point of an image to be animated, comprising a target point (PB) of the image, said image possibly further comprising obstacle points, by:
- defining an image field function comprising:
• an attractive component associated with the target point and of zero value at that point, and
• if obstacle points are present, a repulsive component associated with each obstacle point, - determining the motion of the object point from an equation of motion in accordance with the field at that point , and
- moving the object point in accordance with the motion thus determined.
Once again the shape or the points are displayed on the graphics screen 22 in real time. The method of the invention enables the motion of the object to be displayed in real time. The microcomputer comprises means for computing potential or field values and/or values ka and at the points considered or selected and the speed of motion and the new coordinates of the points.
The microcomputer 20 can be programmed to generate NURBS surfaces as described above. It can also be programmed for the generation or computer-aided design (CAD) of shapes. The data relating to the shape, or the points that define it, in two dimensions or three dimensions, is stored in memory, along with the corresponding dynamic parameters.
The microcomputer 20 is also connected to other peripheral devices, for example printing devices (not shown in the figure) . It can be connected to an electronic communications network, of the Internet type, for example, for sending or receiving data relating to the shapes generated. For this purpose the microcomputer is equipped with means for connecting to the network, or input/output interface means for the network, for example a modem. In accordance with the invention, the data transmitted comprises data on the relative coordinates of the points defining the object and also data relating to the dynamics of the points and of the object itself and obtained by one of the methods in accordance with the invention. The invention therefore also concerns the reception of such data, relating to the object and to its dynamics, and obtained or produced by one of the methods described above .
The microcomputer 20 can equally be connected to an image acquisition subsystem, for example a digital camera 34 used to acquire digital images of an object. These images are then stored in the memory of the microcomputer and processed in accordance with the present invention.
In accordance with the invention, the animation of the image or the motion of its points can be displayed or the corresponding data (on the image and its animation or motion) sent via a wide area communications network (WAN) or local area communications network (LAN) to other display apparatus or to other data processing or storage apparatus, also connected to the network.
As already mentioned in the introduction, the invention can be applied to cinema film production, video games and methods of designing technical components where it is important not only to represent the components but also to be able to observe their behavior in response to simulated deformation.

Claims

1. A method of generating an animated shape at times n, n+1, comprising the following steps:
- assigning a vector field to each of the geometrical points defining the shape in space,
- determining the motion of each point from an equation of motion in accordance with the field at that point, and
- moving the points of the shape as a function of the motion thus determined.
2. A method according to claim 1, wherein the field at a point depends on the motion of at least one other point of the shape.
3. A method according to claim 2, wherein the field at a point depends on the motion of the points which are the nearest neighbors of said point.
4. A method according to claim 1, wherein the equation of motion gives the value of the speed of each point at time n+1 as a function of the speed at time n and of the field at that point.
5. A method according to claim 1, wherein the equation of motion relates the speed of each point proportionately to the field at that point.
6. A method according to claim 1, wherein the equation of motion which gives the speed of each point is:
Vn+ι = kaVn + kDEn where
• Vn+ι and Vn are respectively the speeds at times n+1 and n, • En is the value of the field at the point concerned at time n, and
• ka and kD are respectively called a damping coefficient and an inertia coefficient.
7. A method of generating an animated shape at times n, n+1, comprising the following steps:
- determining the motion of each point defining the shape in space as a function of the motion of at least one other point of the shape, and
- moving the points of the shape in accordance with the motion thus determined.
8. A method according to claim 7, wherein the motion of each point is determined as a function of the motion of the points which are the nearest neighbors of said point.
9. A method of moving an object point of an image to be animated, comprising a target point (PB) of the image, said image possibly further comprising obstacle points, the method comprising the following steps:
- defining an image field function comprising:
• an attractive component associated with the target point and zero at that point, and
• if obstacle points are present, a repulsive component associated with each obstacle point,
- determining the motion of the object point from an equation of motion as a function of the field at that point, and
- moving the object point as a function of the motion thus determined.
10. A method according to claim 9, further comprising computing the speed of the object point proportionately to the value of the image field at the object point, which is moved as a function of the computed speed.
11. A method according to claim 9, further comprising computing the speed of the object point from the equation : Vn+1 = ka.Vn + kjEa in which:
v n+ι and Vn are respectively the speeds at times n+1 and n, • Ea is the value of the field at the location of the point at time n, and
• ka and kj are respectively a damping coefficient and an inertia coefficient, the object point being moved in accordance with the computed speed.
12. A method according to claim 11, wherein ka is a function of the distance d to the target and is such that the object point moves with decreasing inertia as it approaches the target point .
13. A method according to claim 11, wherein the coefficient ka tends toward 0 as the distance d to the target tends toward 0.
14. A method according to claim 11, wherein the coefficient ka is a decreasing parabolic function of d and zero for d = 0.
15. A method according to claim 11, wherein the coefficient ka is constant for values of d greater than a characteristic distance dj
16. A method according to claim 11, wherein the coefficient ka is of the following form:
K = (|da||/dI).[2- (lld /d;)]
17. A method according to claim 9, wherein the attractive component of the field has a potential that is zero at the object point.
18. A method according to claim 9, wherein the repulsive component of the field has a potential that is an at most decreasing function of the distance from the object point to the obstacle point concerned.
19. A method according to claim 18, wherein the potential associated with the repulsive component of the field for a given obstacle point P0 has a constant value beyond a distance di from the obstacle itself .
20. A method according to claim 19, wherein the potential has the following form, in which d is the distance between a current point P and the obstacle point
P0
V(P) = k'/d if d < di
V(P) = k'/do i d > di
21. A method according to claim 9, wherein a component of the motion of the object point along an axis of a system of axes in space is dependent only on the sign of the computed speed component along that axis.
22. A method according to claim 10, wherein the speed is computed from the equation: V = (δ/||E||) .E in which V and E are respectively the speed and vector fields at the point considered and δ is the incremental motion of the object point.
23. A method according to claim 10, wherein the speed is computed, in the case of N obstacles (P0j (j = 1, ..., N) , from the equation:
(dx/dt) =N.{-k. (x-xB)+Σ(j=1;N) [k' j. (x-XojHlPPo -2]} (dy/dt)=N.{-kNy-yB)+Σ(j=1,N) [k' jNy-yoj)||PPoj||-2]} (8) (dz/dt)=N.{-k. (z-zB)+Σ(j_-1/N) [k' j. (z-zoj)|PPoj|r2]} where N = (δ/|| (EB + ∑(j=1,N) (Eoj))||) in which: the coefficient k is characteristic of the attractive component associated with the target point, each coefficient k'j is characteristic of the repulsive component associated with the obstacle P0j, and E0j is the field associated with the obstacle P0j am
EB is the attractor field associated with the target B.
24. A method of moving an object point of an image to be animated, comprising a set of target points (PB) to be reached, said image possibly further comprising obstacle points, the method comprising the following steps: - selecting a first target point to be reached, and
- moving the object point by the method according to any one of claims 9 to 23.
25. A method according to claim 24, wherein the first target to be reached is the target nearest the object point .
26. A method according to any one of claims 1 to 8, wherein the animated shape is defined by at least one NURBS surface and the points defining the shape are control points of that surface.
27. A method according to claim 1 or claim 7, wherein the shape is obtained by CAD or is a digitized image of a real object.
28. A method according to claim 9 or claim 24, wherein the image to be animated is that of a NURBS surface or a CAD image or a digitized image.
29. A method according to claim 9 or claim 24, wherein the image to be animated is that of a NURBS surface.
30. Apparatus for generating an animated shape at times n, n+1, comprising the following means: - means for assigning a vector field to each of the geometrical points defining the shape in space,
- means for determining the motion of each point from an equation of motion in accordance with the field at that point, and - means for moving the points of the shape in accordance with the motion thus determined.
31. Apparatus for generating an animated shape at times n, n+1, comprising:
- means for determining the motion of each geometrical point defining the shape in space as a function of the motion of at least one other point of the shape, and
- means for moving the points of the shape in accordance with the motion thus determined.
32. Apparatus according to claim 31, wherein the motion of each point is determined as a function of the motion of the points which are the nearest neighbors of said point .
33. Apparatus for moving an object point of an image to be animated toward a target point (PB) of the image, said image possibly further comprising obstacle points, the apparatus comprising:
- means for defining an image field function comprising: • an attractive component associated with the target point and of zero value at that point, and • if obstacle points are present, a repulsive component associated with each obstacle point,
- means for determining the motion of the object from an equation of motion in accordance with the field at that point, and
- means for moving the object point in accordance with the motion thus determined.
34. Apparatus according to claim 33, wherein the means for determining the motion of the object point comprise means for computing the speed of the object point proportionately to the value of the image field at that object point.
35. Apparatus according to claim 33, wherein the means for determining the motion of the object point comprise means for computing the speed of the object point from the equation: Vn+1 = ka.Vn + .En in which:
• Vn+ι and Vn are respectively the speeds at times n+1 and n,
• En is the value of the field at the location of the point at time n, and
• ka and k are respectively called a damping coefficient and an inertia coefficient.
36. Apparatus according to claim 34 or claim 35, wherein the means for moving the object point comprise means for moving the object point as a function of the computed speed.
37. Apparatus according to claim 36, further comprising means for modifying the value of kx and/or ka .
38. Apparatus according to any one of claims 30, 31 or 33, further comprising means for modifying parameters of the motion of the points .
39. Apparatus according to claim 37 or claim 38, wherein the means for modifying the value of ki and/or ka or parameters of the motion can modify them in real time.
40. Apparatus according to any one of claims 30, 31 or 33, connected to an electronic communications network.
41. A storage medium having instructions therein for causing a computer to perform a method according to any one of claims 1, 7 or 9.
42. A computer program, loadable into the internal memory of a computer, comprising software code portions for performing a method according to any one of claims 1, 7 or 9.
PCT/EP2000/001526 1999-02-12 2000-02-14 Method and apparatus for animating two-dimensional and three-dimensional images WO2000048129A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU32819/00A AU3281900A (en) 1999-02-12 2000-02-14 Method and apparatus for animating two-dimensional and three-dimensional images

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP99400341.6 1999-02-12
EP99400341A EP1028393A1 (en) 1999-02-12 1999-02-12 Method and apparatus for bi-dimensional and three-dimensional image animation
US31732899A 1999-05-24 1999-05-24
US09/317,328 1999-05-24

Publications (1)

Publication Number Publication Date
WO2000048129A1 true WO2000048129A1 (en) 2000-08-17

Family

ID=26153638

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2000/001526 WO2000048129A1 (en) 1999-02-12 2000-02-14 Method and apparatus for animating two-dimensional and three-dimensional images

Country Status (2)

Country Link
AU (1) AU3281900A (en)
WO (1) WO2000048129A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120191332A1 (en) * 2011-01-25 2012-07-26 Sawhill Bruce K System and Method for Planning, Disruption Management, and Optimization of Networked, Scheduled or On-Demand Air Transport Fleet Trajectory Operations
CN109032339A (en) * 2018-06-29 2018-12-18 贵州威爱教育科技有限公司 A kind of method and system that real-time intelligent body-sensing is synchronous
CN111722896A (en) * 2019-03-21 2020-09-29 华为技术有限公司 Animation playing method, device, terminal and computer readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0520099A1 (en) * 1990-12-25 1992-12-30 Shukyohojin, Kongo Zen Sohonzan Shorinji Applied motion analysis and design
WO1997040471A1 (en) * 1996-04-04 1997-10-30 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
EP0827115A2 (en) * 1996-08-02 1998-03-04 Microsoft Animation control apparatus and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0520099A1 (en) * 1990-12-25 1992-12-30 Shukyohojin, Kongo Zen Sohonzan Shorinji Applied motion analysis and design
WO1997040471A1 (en) * 1996-04-04 1997-10-30 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
EP0827115A2 (en) * 1996-08-02 1998-03-04 Microsoft Animation control apparatus and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BOULIC R ET AL: "COMPLEX CHARACTER POSITIONING BASED ON A COMPATIBLE FLOW MODEL OF MULTIPLE SUPPORTS", IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, vol. 3, no. 3, 1 July 1997 (1997-07-01), pages 245 - 261, XP000702052 *
MATARIC E.A.: "MOVEMENT CONTROL METHODS FOR COMPLEX, DYNAMICALLY SIMULATED AGENTS: ADONIS DANCES THE MACARENA", PROCEEDINGS OF THE SECOND INTERNATIONAL CONFERENCE ON AUTONOMOUS AGENT, 9 May 1998 (1998-05-09) - 13 May 1998 (1998-05-13), NEW YORK NY USA, pages 317 - 324, XP002104910 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954262B2 (en) 2011-01-25 2015-02-10 Nextgen Aerosciences, Llc Method and apparatus for dynamic aircraft trajectory management
US20120191332A1 (en) * 2011-01-25 2012-07-26 Sawhill Bruce K System and Method for Planning, Disruption Management, and Optimization of Networked, Scheduled or On-Demand Air Transport Fleet Trajectory Operations
US8554458B2 (en) 2011-01-25 2013-10-08 Nextgen Aerosciences, Llc System and method for planning, disruption management, and optimization of networked, scheduled or on-demand air transport fleet trajectory operations
US8594917B2 (en) 2011-01-25 2013-11-26 Nextgen Aerosciences, Llc Method and apparatus for dynamic aircraft trajectory management
EP2668609A1 (en) * 2011-01-25 2013-12-04 Nextgen Aerosciences, LLC Method and apparatus for dynamic aircraft trajectory management
EP2668609A4 (en) * 2011-01-25 2014-10-08 Nextgen Aerosciences Llc Method and apparatus for dynamic aircraft trajectory management
WO2012103228A1 (en) * 2011-01-25 2012-08-02 Nextgen Aerosciences, Llc Method and apparatus for dynamic aircraft trajectory management
US8965672B2 (en) 2011-01-25 2015-02-24 Nextgen Aerosciences, Llc System and method for planning, disruption management, and optimization of networked, scheduled or on-demand air transport fleet trajectory operations
US10657828B2 (en) 2011-01-25 2020-05-19 Smartsky Networks LLC Method and apparatus for dynamic aircraft trajectory management
US11955018B2 (en) 2011-01-25 2024-04-09 Smartsky Networks LLC Method and apparatus for dynamic aircraft trajectory management
US9830827B2 (en) 2011-01-25 2017-11-28 Smartsky Networks LLC Method and apparatus for dynamic aircraft trajectory management
CN109032339A (en) * 2018-06-29 2018-12-18 贵州威爱教育科技有限公司 A kind of method and system that real-time intelligent body-sensing is synchronous
CN111722896A (en) * 2019-03-21 2020-09-29 华为技术有限公司 Animation playing method, device, terminal and computer readable storage medium
CN111722896B (en) * 2019-03-21 2021-09-21 华为技术有限公司 Animation playing method, device, terminal and computer readable storage medium

Also Published As

Publication number Publication date
AU3281900A (en) 2000-08-29

Similar Documents

Publication Publication Date Title
US7515155B2 (en) Statistical dynamic modeling method and apparatus
US7307633B2 (en) Statistical dynamic collisions method and apparatus utilizing skin collision points to create a skin collision response
Zeleznik et al. An object-oriented framework for the integration of interactive animation techniques
Di Giacomo et al. An interactive forest
US6141015A (en) Method and apparatus for determining collision between virtual objects in a virtual space
KR100657775B1 (en) Computer graphics animation method and device
US20080297519A1 (en) Animating hair using pose controllers
Conti et al. Interactive rendering of deformable objects based on a filling sphere modeling approach
Tsingos et al. Implicit surfaces for semi-automatic medical organ reconstruction
O'Brien et al. Automatic simplification of particle system dynamics
Thorisson ToonFace: A system for creating and animating interactive cartoon faces
Milenkovic Position-based physics: simulating the motion of many highly interacting spheres and polyhedra
US6657629B2 (en) Collision flypapering: a method for defining realistic behavior for simulated objects in computer animation
US7969442B2 (en) Method and system of producing cartoon animation using character animation and mesh deformation
WO2000048129A1 (en) Method and apparatus for animating two-dimensional and three-dimensional images
CN114254501A (en) Large-scale grassland rendering and simulating method
Xian et al. A powell optimization approach for example-based skinning in a production animation environment
Narang et al. Fbcrowd: Interactive multi-agent simulation with coupled collision avoidance and human motion synthesis
Bechmann et al. Order‐controlled free‐form animation
Wong Waterfall-a particle system animation
Kass Inverse problems in computer graphics
Anderson A virtual universe utilizing haptic display
Magnenat Thalmann et al. Computer animation: a key issue for time visualization
WO2004104934A1 (en) Statistical dynamic collisions method and apparatus
Mullenho Physically-based B-spline surface sculpting

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase