METHOD FOR REPRESENTING GEOMETRIC SHAPES AND GEOMETRIC STRUCTURES IN COMPUTER GRAPHICS

Abstract: A method for representing time dependent geometric shapes and geometric structures in computer systems is presented. More specifically, the invention presents a method for describing such objects and their movement through a data structure with ordered geometric objects. These objects are described as any combination of points, curves and surfaces that are anchored to each other in a graph structure. Various methods of anchoring can be used, giving the method a high degree of flexibility. Animation is described as time dependency in the description of any part of the representation, including the definition of movement curves along which points move from an initial to a final position during a time interval. If parts of the data structure are repeated in the model, they will normally be described only once. Additional occurrences will be described by using a reference to the first occurrence and a transformation.

Description: Method for representing geometric shapes and geometric structures in computer graphics Background of the Invention 1. Field of the Invention The present invention relates to representation of geometric shapes and geometric structures in computer graphics. The invention further relates to modeling of three dimensional objects and animation of such objects in computer systems, and more specifically to a method for describing such objects and their animation through a graph structure of ordered geometric entities. In addition, the invention relates to creation and editing of such objects and animations through building models and animations by creating and manipulating smaller pieces of a model or animation in the graph. 2. Description of Related Art There is a fast growing market for animated geometry and its distribution through the Internet and other means. Relevant applications include CAD/CAM, medical diagnosis systems, computer games, virtual reality systems, electronic shopping, screensavers and visualization of complex information such as weather conditions, ocean currents, seismographic data, etc. The emerging standard for Internet-related animated geometry is the so-called Virtual Reality Modeling Language (VRML). In VRML, the shapes of 3D-objects are either primitives (spheres, cylinders, cones) or represented by polygons, i.e. a net of planar facets bounded by straight lines. In order to describe a complicated shape and achieve visual smoothness at a certain resolution, typically a huge number of polygons are necessary and the model in itself is still not smooth. Composite 3D-objects in VRML can be defined by beginning with a root object, on which several branch (child) objects depend, which in turn can have new child objects, resulting in a simple tree. While this type of composition allows definition of separate movements of sub-trees in a 3D-object, such movements in VRML can only consist of simple shifts, rotations, and linear interpolation between an initial and an end position. The present invention facilitates the definition of 3D-objects which are far more complicated in their topological structure. The invention also enables the animation of such 3D-objects and their separate parts in various sophisticated ways, allowing smooth paths and complicated acceleration effects. In order to achieve smooth shapes and movements and efficient representations of them, the preferred embodiments of our invention is based on spline curves and surfaces, of which B-splines and Non Uniform Rational B-Splines (NURBS) are specific variants, as well as triangulations and algebraic geometry. Splines as piecewise polynomials are not incorporated in VRML, but are normally used in high-level CAD/CAM applications with user-defined smoothness. Some hierarchical shape modeling using splines has been carried out before in a more limited context, see Barghiel, Cristin, Richard Bartels and David Forsey, Pasting Spline Surfaces, in Mathematical Methods for Curves And Surfaces, proceedings of a conference held June 16- 21, 1994 in Ulvik, Norway, editors: M. Daehlen, T. Lyche, L. L. Schumaker, pp. 31-40, Vanderbilt University Press, Nashville, TN. Summary of the Invention It is the object of the invention to provide a method for representing three dimensional (3D) objects and animation of such objects in a way that significantly reduces the storage requirements for these representations. This applies to 3D free-form objects in particular. Since the amount of data necessary for storing and transferring such objects and animations is reduced, the invention facilitates the sharing of such objects and animations between several computers, several users etc. The invention will also simplify the work necessary for creating such objects and animations by allowing 3D objects to be partitioned into several separate entities which may be separately described and manipulated. The different entities can be combined in a number of ways, and various kinds of relationships between the entities may be defined, thus making it possible to combine parts into units in varying ways, and to manipulate one or more parts as units depending on what is most convenient at different stages of the modeling and animation work. To achieve the above mentioned object of the present invention, a method for modeling of three dimensional objects and their animated movements is presented. The method utilizes the hierarchical, duplication and multiresolution properties of many three dimensional free-form objects and their animation. The method for representing such objects and their animation can be described as Geometry Anchored Geometry, henceforth referred to as GAGs, and the resulting representation is referred to as a GAGs model. In the GAGs model, 3D objects are described as sets of geometric entities such as points, curves and surfaces. These geometric entities are linked to topological nodes where each topological node describe some part of some 3D object. The topological nodes are anchored to each other in such a way that they form a directed graph structure of underlayers with overlayers. Any topological node can be anchored to one or more underlayers and have any number of overlayers anchored to it. The anchoring of the topological nodes is defined in such a manner that the geometry of an overlay er depend on its underlayers and therefore the overlayers geometry will be defined relatively to the underlying topological nodes' geometries and in this way a change made to the geometry of an underlayer will also lead to an update of the geometries of all the anchored overlayers. Additional geometric entities are linked to the anchors. Hence the topological information about the model resides in the topological nodes and the anchors, while the geometric information resides in the geometric entities that are linked to the topological nodes and the anchors respectively. When the model is an animation, movement information will be found as time dependent information in the geometric entities. Movement description in geometric entities referring to topological nodes will describe time dependent change in the geometric description of points, curves or surfaces that constitute the geometric object as such, while movement description in the geometric entities referring to the anchors will describe time dependent movement of the geometric relationship between the over- and underlayers. Conversions define relationships between local entity and global model occurrences, for instance with regard to time: conversion functions define relationship between local time of a time dependent movement and global time; with regard to the geometry of a topological node: conversion matrices define relationships between the local coordinates of the topological node and global coordinates of the whole scene of which the topological node is a part Any set of topological nodes, anchors and/or geometric entities can be used as prototypes when defining new sets of topological nodes, anchors and/or geometric entities. A set of topological nodes, anchors and/or geometric entities which is defined based on such a prototype can override any information in the prototype and/or define a transformation which describe some geometric relationship between the prototype and the topological nodes, anchors and geometric entities. Brief description of the drawings Fig. 1 shows the GAGs structure in a generalized form. Fig. 2 shows an example of an animated object. Fig. 3 shows the GAGs model of a part of the animated object shown in figure 2. Description of the preferred embodiment The method according to the present invention can preferably be utilized in order to create representations of three dimensional (3D) objects and animation of such objects. Such a representation will be referred to as a GAGs model. A GAGs model can be used in different contexts. Typically GAGs models will be used in computer systems, either as part of a single system or distributed on several collaborating computer systems. GAGs models are also stored as one or more files and such files may be sent over computer networks such as the Internet. The GAGs models will be efficient representations of three dimensional free-form geometric models and their animation including non-linear movements. File formats utilizing the properties of the GAGs model will therefore provide a preferable alternative to previous file formats such as VRML. Referring to figure 1, a GAGs model consists of topological nodes that are anchored to other topological nodes. Each topological node and anchor is associated with one or more geometric entities. The topological nodes and anchors define the topology of the model, while the geometric entities make up the geometrical part of the model. Within the scope of the invention, it is possible to implement this structure in any number of ways. In a given implementation the different units of the model, topological nodes, anchors and geometric entities, will not necessarily be realized as separate units. In the case where the GAGs model is programmed in an object-oriented language the units may be defined as separate objects as well as by any number of objects, and it will also be possible to combine several units in one object. For instance can one object include a topological node as well as its anchors and any relevant geometric entities. The topology of the model is defined by a structure of topological nodes and anchors. This structure describes the relationships between the geometric entities. A topological node represents a part of a 3D object. An anchor describes how different parts of the 3D objects are related to each other. In GAGs two different kinds of topological nodes are identified, namely bases and features. Bases are defined globally and independently, whereas features are anchored to underlying topological nodes and defined relatively to the underlying topological node(s). Any feature can be anchored to one or more underlying topological nodes. Also, a topological node can have any number of overlaying topological nodes anchored to it. In this way the topological node and anchor structure forms a directed graph. The number of levels in the graph reflects the complexity of the geometry of the represented 3D object(s), where a base is in general a global element while details are placed further up the graph as features. The topological node or nodes to which a given topological node is anchored (including its geometric entities), will be referred to as underlayers in respect to this topological node, while topological nodes anchored to it will be referred to as its overlayers. The anchoring between 2 topological nodes are performed by one or more anchors. Each anchor connects a part of the overlaying topological node to the underlayer. We call this part the area of influence of the anchor on the topological node. Several anchors may have overlapping areas of influence. An example is a rubber string knit between 2 fingers. The 2 knit points are anchors with areas of influence over the complete string, but the weighing between them depends on the distances to the knit points. Each anchor consists of one or more anchor points, which have their own area of influence. These areas are subparts of the anchors area of influence, and may also overlap. The anchoring can be performed statically or dynamically. A static anchor does not move relative to the underlying topological node, while a dynamic anchor contains movement information in order to move the overlayer relative to the underlayer. While the topological nodes and the anchors describe the topology of the model, the geometric entities describe the geometry. Geometric entities can be linked to topological nodes as well as to anchors. A geometric entity that is linked to a topological node will normally describe the shape of a part of the 3D object that is modeled. Geometric entities that are linked to anchors typically describe how the anchors anchor an overlaying topological node to the underlying topological node. Such descriptions will typically include points of anchoring and tracks these points will follow. Geometric entities are also used to describe time dependencies of these geometric descriptions. Geometric entities are of different types, typically points, curves and surfaces. The GAGs model is independent of how such geometric entities are represented. However, using splines to represent free-form 3D objects gives a compact representation and the smoothness of the geometry is not dependent on the distance from the viewpoint to the geometric object. Geometric entities can also be used to define conversion functions defining relationships between local entity and global model occurrences, for instance with respect to time. A conversion function will convert from the local time of the movements to the global time of the animation. These conversion functions are typically one dimensional curves. The functions may be linear, but other shapes are also possible, e.g., to describe acceleration in a movement. Conversions between the local description of a geometry and the global geometry description are represented by conversion matrices, typicaly a 4 x 4 matrix. Movement can be represented as time dependent topological nodes, anchors and geometric entities. Movement in anchors typically describe time dependent movements of the geometric relationship of the under- and overlayers. For example an anchor may describe how an overlayer moves along a track on an underlayer. Movement can also be represented as time dependent geometric entities associated with a topological node. A simple example is a topological node which has a size that varies over time. If a change is made to one topological node, this will normally affect other nodes as well. Since a 3D object is represented by a graph of several objects, most objects will have several overlayers. These overlayers will all be features which, as already described, are defined relative to their underlying topological nodes. The anchors describe how the geometry of the overlying topological node depends on the underlying topological node. Hence a change to a given topological node may lead to corresponding changes in any or all overlaying topological nodes. Because of this, some forms of animation of 3D objects with many parts can be done by just changing some underlying topological nodes and the overlaying topological nodes will change in accordance with the underlayer. Animation can also be described by topological nodes changing anchoring and geometric entity, i.e. the anchor or geometric entity is not changed, but its effect upon topological objects or anchors may be turned on and off. For this purpose time intervals can be associated with each anchor, topological node and geometric entity describing the parts of the animation sequence where the anchor, topological node or geometric entity is active. Alternatively conditions are defined that dictates whether the topological node, anchor or geometric entity is active. A base can only be animated by letting a geometric entity associated with it be time dependent. A feature can be animated in one or more of the following ways: 1. A geometric entity associated with the topological node is time dependent and changes over time 2. A geometric entity of one of the underlayers of a topological node changes over time 3. One or more of the anchors of the topological node or any geometric entity referring to such an anchor is time dependent and changes over time 4. Time moves into or out of the time interval associated with the topological node itself, one or more anchors associated with the topological node, or one or more geometric entities associated with the topological node. 5. A defined condition is fulfilled, such as the presence, absence or proximity of an other part of the 3D object or an input from a user interface or any other event from a source external to the GAGs structure. The GAGs model will typically contain all topological nodes and anchors that are defined at the time, but the rendered part of the GAGs model will vary as the animation time changes, moving in and out of the time- intervals associated with the different topological nodes, anchors and geometric entities, and as conditions associated with topological nodes, anchors and geometric entities are or are not fulfilled. Any topological node, anchor and geometric entity can be used as a prototype when defining new topological nodes, anchors and geometric entities respectively. Further, a prototype may also consist of a set of any number of topological nodes, anchors and/or geometric entities. A topological node, anchor or geometric entity which is defined based on a prototype can override any information in the prototype and/or define a transformation which describes the relationship between the prototype and the topological node, anchor or geometric entity. The same is true for a part of a geometric object and/or animation which is defined based on a more complex prototype. Figure 2 shows a typical animated creature, the ghost slug Spike. He has spikes protruding from his back, four eyes, two anchored directly to the body and two anchored to antennae. The eyes consists of one or more eye globes and one ore more lenses. In addition, Spike has a convenient collar with a hoop to secure a chain. By analyzing the GAGs model, it can be noticed that many of the parts of the 3D objects are quite similar. All the spikes on Spike's back are separate topological nodes in the global graph structure of the GAGs model. However, they are all defined by reference to the same topological node which is the prototype, and they are zoomed and tilted differently and located in different positions on Spike's back. Alternatively, the geometric entities describing the topological nodes can be defined by means of a reference to a prototype geometric entity. It will also be noticed that the eye and antennae arrangements are situated symmetrically on both sides of the body, one of the sets can be viewed as just a mirroring of the other. This kind of symmetry is a quite common situation, not an artifact particular to our example. Further, it can also be noticed that the shapes of some parts of Spike depend on the shape of other parts. For example, if the body moves, all the other shapes follow. Also, if an antennae waves, the anchored eye will show a similar waving. Figure 3 shows how these relationships are modeled by a GAGs model creating a graph of topological nodes and anchors with associated geometric entities. The floor is the base topological node, while Spike's body is an overlayer relative to the floor. The anchor between the floor and the body is a dynamic anchor which defines a movement which the body will go through as the animation time progresses. Since the spikes are anchored to the body by static anchors, a movement of the body will also lead to the spikes moving by the same amount, thus always being attached to the same point on Spike's back. As already described, since the spikes are all equal in shape, one spike is used as a prototype and the other spike topological nodes (or their associated geometric entities) refer to the spike prototype and add or override information about where the spike is positioned on the body and in which direction it is pointing. Depending on choice of anchoring, a spike may always point in the same direction relative to the body or change direction independent of the body's movements. This will typically be modeled by time dependencies in the anchors. In the example the antennae are built by anchoring a surface to a spine. The spine curve defines the curving of the antennae and is anchored to the body. The curving of the spine may change over time. This is modeled by letting the topological node representing the spine refer to a geometric entity which is a time dependent spline. There are several ways to let the speed of the moving antennae change. Either this can be modeled directly on the time dependent spline. Another alternative is to let the time progression in the spline be rather constant, but associate an additional geometric entity with the spine topological node. This new geometric entity will define a conversion from local time to global time in such a way that the speed of the spine's movements is varied over time. If one of Spike's antennas is to be a mirror image of the other antennae, this can be efficiently represented in GAGs by letting one antennae be a prototype which definition of the other antennae is based on. The only additional information in the other antennae is a function describing the mirroring. In this case the prototype will be a graph consisting of several topological nodes, anchors and geometric entities.

Claims: What is claimed is: 1. Method for representing geometric shapes and geometric structures in computer graphics, comprising the steps of describing geometric objects as a set of geometric entities such as points, curves and surfaces, linking each geometric entity to at least one topological node thus defining a geometric shape associated with the topological node, anchoring the topological nodes to each other by way of anchors in such a way that they form a directed graph structure of overlayers and underlayers, where each topological node can be anchored to any number of underlayers and have any number of overlayers anchored to it, where the anchoring is done in such a way that the geometry of an overlayer is dependent on its underlayers, describing geometric properties of the anchors as additional geometric entities, linking each of these additional geometric entities to at least one anchor. 2. Method according to claim 1, where one or more anchor points are associated with each anchoring of an overlayer to an underlayer. 3. Method according to claim 1 , where the geometric entity linked to any topological node can be either a curve or a surface or a point, and where a topological node can be anchored to other topological nodes independent of what kind of geometric entities it is linked to, thus allowing the anchoring of surface to surface, surface to curve, curve to surface and curve to curve. 4. Method according to claim 1, where at least some of the geometric entities are described as splines. 5. Method according to claim 1, where at least some of the geometric entities are described as Non-Uniform Rational B-splines (NURBS). 6. Method according to claim 1 , where at least some of the geometric entities are described as B-splines. 7. Method according to claim 1 , where at least some of the geometric entities are described by polygons. 8. Method according to claim 1 , where at least some of the geometric entities are described by algebraic equations. 9. Method according to claim 1 , where any sub-part of the topological node graph structure, including geometric entities, is used as a prototype for any number of occurrences, so that every such occurrence is described by using a reference to the prototype. 10. Method according to claim 9, where any occurrence that refer to a prototype may override one or more of the properties of the prototype. 11. Method according to claim 9, where the occurrence that refer to a prototype also include a transformation matrix, defining a transformation from the prototype to the referring instance. 12. Method according to claim 1 , where the geometric shape of a given topological node can be changed in any of the following ways: - by changing the geometric entity linked to the topological node, - by changing the anchors between the topological node and its underlaying topological nodes, - by changing the anchor points in any of the anchors between the topological node and its underlaying topological nodes, - by changing the underlaying topological nodes through any of the previous ways. 13. Method for representing time dependent geometric shapes and geometric structures in computer graphics, comprising the steps of describing geometric objects as a set of geometric entities such as points, curves and surfaces, linking each geometric entity to at least one topological node thus defining a geometric shape associated with the topological node, anchoring the topological nodes to each other by way of anchors in such a way that they form a directed graph structure of overlayers and underlayers, where each topological node can be anchored to any number of underlayers and have any number of overlayers anchored to it, where the anchoring is done in such a way that the geometry of an overlayer is dependent on its underlayers, describing geometric properties of the anchors as additional geometric entities, linking each of these additional geometric entities to at least one anchor, where any information describing geometric entities, topological nodes as well as anchors may be time dependent, and where the dependency of overlayers on underlayers will lead to time dependency in any overlayer anchored to a time dependent underlayer. 14. Method according to claim 13, where one or more anchor points are associated with each anchoring of an overlayer to an underlayer and where a change in the position of the anchor points relative to each other or relative to the geometry of the underlying topological nodes will influence the geometric shape of the overlayer according to the rules in the definition of the anchor. 15. Method according to claim 13, where a time interval may be defined for any topological node, anchor or geometric entity, said time interval defining when the topological node, anchor or geometric entity is active. 16. Method according to claim 13, where a condition may be defined for any topological node, anchor or geometric entity, said condition defining whether the topological node, anchor or geometric entity should be active. 17. Method according to claim 16, where the condition may be the presence, absence or proximity of any other part of the geometric representation or the presence of a defined input from a user interface or any other defined event from a source external to the geometric representation. 18. Method according to claim 13, where the geometric entity linked to any topological node can be either a curve or a surface or a point, and where a topological node can be anchored to other topological nodes independent of what kind of geometric entities it is linked to, thus allowing the anchoring of surface to surface, surface to curve, curve to surface and curve to curve. 19. Method according to claim 13, where at least some of the geometric entities are described as splines. 20. Method according to claim 13, where at least some of the geometric entities are described as Non-Uniform Rational B-splines (NURBS). 21. Method according to claim 13, where at least some of the geometric entities are described as B-splines. 22. Method according to claim 13, where at least some of the geometric entities are described by polygons. 23. Method according to claim 13, where at least some of the geometric entities are described by algebraic equations. 24. Method according to claim 13, where any sub-part of the topological node graph structure, including geometric entities, is used as a prototype for any number of occurrences, so that every such occurrence is described by using a reference to the prototype. 25. Method according to claim 24, where any occurrence that refer to a prototype may override one or more of the properties of the prototype. 26. Method according to claim 24, where the occurrence that refer to a prototype also include a transformation matrix, defining a transformation from the prototype to the referring instance.

Inventors: DOKKEN TOR, KAASA JOHANNES, NORDHAGEN ELSE, QUAK EWALD, DOKKEN, TOR, KAASA, JOHANNES, NORDHAGEN, ELSE, QUAK, EWALD
Applicants: DOKKEN TOR, KAASA JOHANNES, MULTIMEDIA CAPITAL AS, NORDHAGEN ELSE, QUAK EWALD, DOKKEN, TOR, KAASA, JOHANNES, NORDHAGEN, ELSE, QUAK, EWALD
Application year: 1998
Main classification: G06T17
IPC codes: G06T15, G06T17