The present invention relates in general to a method and apparatus to store and transmit data representing a 3D object. In particular, the present invention relates to a method and apparatus which stores or transmits a 3D object using a partial differential equation (PDE) surface patch.
Computer Aided Design (CAD) is just one example of an environment where there is a strong need to represent 3D objects. Such CAD systems allow a designer to view an image of the object, and perform functions such as manipulating the shape of the object. It is important for computer aided design systems to be able to define and represent the shapes of complex objects with ease. Also, it is desired to allow shape manipulation to be performed accurately, efficiently and intuitively.
Most currently available commercial CAD systems employ polynomial surface modelling schemes, such as Non-Uniform Rational B-Splines (NURBS). NURBS are based on simple polynomial functions associated with control points including weights and knots. An intuitive and predictable manipulation of surface shape is possible for simple shapes by changing the position of the control points. However, as the object becomes more complex, the process of shape manipulation becomes increasingly time consuming and rather non-intuitive. In particular, movement of a control point has only limited relation to changes in the shape of the object, and it becomes increasingly difficult for the designer to accurately and efficiently manipulate the shape of the object.
A paper by Ugail H., Bloor, M. I. G., Wilson M. J.: TECHNIQUES FOR INTERACTIVE DESIGN USING THE PDE METHOD, ACM Transactions on Graphics, Vol. 18, No. 2, pp 195-212 (dated 2 Apr. 1999), by the present inventor and others, discusses a shape modelling technique using a partial differential equation (PDE) to describe the shape of a surface of an object. This is conveniently known as a PDE surface or a PDE surface patch.
Partial differential equations are themselves ubiquitous in science and are used to describe various different phenomena such as fluid flow, gravitational fields or electromagnetic fields. PDEs are useful in areas such as aircraft flight simulation and weather prediction, as well as theoretical explanations for general relativity and quantum mechanics. However, the use of PDEs to represent the shape of the surface of a 3D object is a relatively new and unexplored field, and is a substantial departure from traditional modelling techniques.
A PDE surface is defined by boundary conditions, suitably in the form of a plurality of boundary curves. A complex surface shape is created by mathematically solving the PDE for those boundary conditions. In a CAD system or other graphics tool, controlling the shape and position of the boundary curves thereby creates and manipulates the surface shape of the 3D object.
The process of shape manipulation is sometimes time-consuming, inaccurate and unpredictable, even when representing objects with PDE surfaces. In particular, where complex objects are built from a plurality of PDE surface patches, it becomes difficult to accurately alter or reposition the boundary curves to achieve a desired manipulation of the surface of the 3D object.
Another problem arises in that a relatively large amount of data is required in order to represent a 3D object in a computer system or other hardware. Although most modern CAD software runs on relatively large and powerful computer systems, it is increasingly desired to send and receive data representing 3D objects between different computing platforms and there is a corresponding high demand on communication bandwidth. For example, it is relatively difficult to send and receive 3D object data with a portable computing platform such as a laptop computer, notebook or personal digital assistant (PDA) due to restricted bandwidth available in wireless communication networks. These problems are exacerbated in mobile cellular telephony networks (e.g. GSM mobile phones). Problems also arise due to limited storage capacity within the hardware, especially when it is desired to store data concerning many different 3D objects on the same storage medium.
An aim of the present invention is to address the problems of the prior art, as expressed above or otherwise.
A preferred aim of the present invention is to provide a method and apparatus to represent a 3D object with compact data storage. Another preferred aim is to minimise a volume of data required to store or transmit a 3D object.
According to the present invention there is provided an apparatus and method as set forth in the appended claims. Preferred features of the invention will be apparent from the dependent claims, and the description which follows.
In one aspect of the present invention, a surface patch of a 3D object is represented by storing a plurality of control curves which act as boundary conditions to a partial differential equation (PDE). Solving the PDE for those boundary conditions provides the PDE surface patch. Each of the control curves is stored as curve data, such as Fourier coefficients. A compact representation of a 3D object is obtained. Also, the curve data requires relatively low bandwidth for transmission. When it is desired to resolve the 3D object, the partial differential equation is solved using boundary conditions provided by the curve data. Optionally the surface patch is also represented with respect to a spine stored as curve data or as polynomial coefficients.
For a better understanding of the invention, and to show how embodiments of the same may be carried into effect, reference will now be made, by way of example, to the accompanying diagrammatic drawings in which:
a and 2b show a second example 3D object;
a, 3b and 3c show PDE control curves of a third example object;
a and 4b show another example object and corresponding spine or spines for each PDE surface patch
a and 5b show another example object and corresponding spine or spines for each PDE surface patch;
a and 8b illustrate manipulation using shape parameters defined on a spine;
a and 9b show another example of shape manipulation using a spine;
In the drawings, like reference numerals are used to denote like elements.
A PDE surface patch represents the surface of the object 10 by in effect transforming from measurements in the X, Y, Z directions in
X
(u,v)=(x(u,v),y(u,v),z(u,v)) (1)
To illustrate this alternate approach of PDE surfaces, one can consider that the cylinder 10 has been cut open along its length and laid out flat. The shape of the surface is then defined in relation to the u,v space.
In more detail, a PDE surface is a parametric surface patch X(u,v), defined as a function of two parameters u and v on a finite domain Ω⊂R2, by specifying boundary data around the edge region of ∂Ω. Typically the boundary data are specified in the form of X(u,v) and a number of its derivatives on ∂Ω. Moreover, this approach regards the coordinates of the (u,v) point as a mapping from that point in Ω to a point in the physical space. To satisfy these requirements the surface X(u,v) is regarded as a solution of a PDE based on the elliptic bi-harmonic equation ∇4=0, namely
Here the boundary conditions on the function X(u,v) and its normal derivatives ∂X/∂n are imposed at the edges of the surface patch.
Equation (2) is a second-order equation. In other embodiments of the invention, third or even higher order PDEs are employed. However, for ease of illustration, the bi-harmonic form of PDE is discussed herein.
The parameter a in Equation (2) is an optional special design parameter employed in preferred embodiments of the present invention to control the relative smoothing of the surface in the u and v directions. That is, the parameter a produces a waist effect within the interior of the surface patch, with higher values of a producing a more pronounced waist effect. The parameter a is particularly useful when designing objects with an interactive graphical design tool (e.g. a CAD system).
There exist many methods to determine the solution of Equation (2) ranging from analytic solution techniques to sophisticated numerical methods. For the work described here restricting to periodic boundary conditions, a closed form analytic solution of Equation (2) is utilised.
Choosing the parametric region to be 0≦u≦1 and 0≦v≦2π, the periodic boundary conditions can be expressed as X(0,v)=P1(v), X(1,v)=P2(v), Xu(0,v)=d1(v), and Xu(1,v)=d2(v).
The boundary conditions P1(v) and P2(v) define the edges of the surface patch at u=0 and u=1 respectively. Using the method of separation of variables, the analytic solution of Equation (2) can be written as:
where a00,a01,a02,a03,an1,an2,an3,an4,bn1,bn2,bn3 and bn4 are vector constants, whose values are determined by the imposed boundary conditions at u=0 and u=1.
For a general set of boundary conditions, in order to define the various constants in the solution, it is necessary to Fourier analyse the boundary conditions and identify the various Fourier coefficients. Where the boundary conditions can be expressed exactly in terms of a finite Fourier series, the solution given in Equation (3) will also be finite. However, this is often not possible, in which case the solution will be the infinite series given Equation (3).
The preferred technique for finding an approximation to X(u,v) is based on the sum of the first few Fourier modes and a “remainder term”, i.e.,
where N is usually small (e.g. N<10) and R(u,v) is a remainder function defined as,
R
(u,v)=r1(v)ewu+r2(v)ewu+r3(v)e−wu+r4(v)e−wu, (8)
where r1,r2,r3,r4 and w are obtained by considering the difference between the original boundary conditions and the boundary conditions satisfied by the function
Although the solution is approximate, this preferred solution technique guarantees that the chosen boundary conditions are exactly satisfied since the remainder function R(u,v) is calculated by means of the difference between the original boundary conditions and the boundary conditions satisfied by the function F(u,v).
a and 2b show a second example 3D object.
As shown in
The curves correspond to the boundary conditions on the function X(u,v), where P1(v)=X(0,v) and P2(v)=X(1,v). A vector field corresponding to the difference between the points on the curves P1 and P2 and d1 and d2 respectively, corresponds to the conditions on the function ∂X/∂n such that ∂X/∂n=[p(v)−d(v)]s, where s is a scalar. That is, the size and relative distance between the position curves P1, P2 and the derivative curves d1, d2 defines the direction that the surface will propagate along the object.
It can be appreciated that, from a design point of view, this boundary curve based approach is a user-friendly tool for PDE surface manipulation in an interactive environment. The initial set of control curves are readily created such as by a designer freely drawing the curves or with click and drag operations. Further, the designer can readily manipulate the shape of the object shown in
Whilst the control curves of
Spine
a, 3b and 3c show PDE control curves of a third example object. Here, the preferred embodiments of the present invention also provide a spine S which links each of the control curves P1,P2 and d1,d2. The spine S can take many different forms.
As shown in
As shown in
As shown in
Spine Derivation
The preferred embodiment of the present invention derives the spine S as part of the solution of the partial differential equation defining the PDE surface. The spine S is extracted as a by-product of the solution and requires no additional computation.
Firstly, it has been identified that the term A0 in Equation (3) is a cubic polynomial of the parameter u. Secondly it can be seen that for each point X(u,v) on the PDE surface the term Σn=1∞[An(u)cos(nv)+Bn(u)sin(nv)] in Equation (3) describes the radial position of the point X(u,v) away from a point at A0. Finally, applying the triangle inequality of Equation (3), one can see that,
Thus, the term A0 which is a cubic polynomial of the parameter u traces out a curve in 3-space which follows the “centreline” of the surface patch. Therefore, using the solution technique described above for Equation (3), a surface point X(u,v) may be regarded as being composed of sum of a vector A0 giving the position on the spine of the surface and a radius vector defined by the term Σn=1∞[An(u)cos(nv)+Bn(u)sin(nv)] providing the position of X(u,v) relative to the spine S. More precisely, for a PDE surface described by the Equation (3), the spine is constructed by taking that part of the solution with zero mean by way of removing the periodic contribution.
It is noteworthy that the introduction of the R(u,v) term in the preferred solution described in Equation (7) hardly affects the interior shape of the surface. This is due to the fact that for larger n the Fourier modes make negligible contributions to the interior of the patch. Therefore, as far as the spine S of the shape generated using Equation (7) is concerned, since the spine does not represent the detailed geometry of the shape, the A0(u) term is left unchanged by the introduction of the R(u,v) term in the approximate solution and hence the spine of the shape is left unchanged.
Although the particular definition for the spine of a PDE surface that is adopted here is very convenient from the point of view of the underlying mathematical representation of the surface, it is by no means a unique definition and alternative solutions are also applicable to the present invention.
As one alternative example, the spine is calculated as a centroid of the respective control curve. That is, the curve is taken to define the outline of a lamina having an equally distributed mass, and the centroid is calculated as the centre of gravity of the lamina. Hence, the spine has a predetermined association with the set of control curves. This associated is either set such as by a centre of gravity of each control curve, or, as in the preferred embodiment, is derived from solving the partial differential equation.
a and 4b and
b shows an example PDE surface of generally cylindrical form. This particular shape is created by means of four appropriately spaced ellipses defining the boundary conditions P0(v), P1(v), d0(v) and d1(v).
b shows a composite shape that generally resembles the outline shape of an aircraft. This shape is created by combining a plurality of surface patches. In this example, five surface patches (one for the fuselage and two for each wing) are used, with common boundaries where necessary. The corresponding composite spine for the aircraft shape is shown in
In some embodiments of the present invention, it is appropriate to create a new object by first drawing or defining the spine S, and then placing a plurality of control curves P1,P2,d1,d2 in relation to the spine. Alternatively, as described above for the preferred embodiments of the present invention, the boundary curves P1,P2,d1,d2 are defined first, and then the spine derived automatically as the A0 term in the solution of Equation 3.
Shape Manipulation
One of the many attractive features of PDE surfaces is their ability to be able to create and manipulate complex shapes with ease. A user with little or no knowledge of solving PDEs and how the boundary conditions affect the solutions of the PDEs is able to use the method to create complex geometry with ease. The shapes in this case are parameterised using the boundary curves that define them. However, in order to manipulate the shape of very complex objects, the number of curve manipulations can be excessive. Since the spine S of the PDE surface characterises the surface patch as a whole, rather than individual boundaries, a shape parameterisation based on the spine provides further intuitive tools for shape manipulation.
Preferably, the spine S is output to a display. Conveniently the spine S is displayed along with the control curves P1,P2 and d1,d2. The system then has the option of manipulating the curves using the spine S. As shown in
Referring to
Step 701 comprises defining boundary conditions of the PDE, in this case by creating a plurality of control curves. In the preferred embodiment the control curves include boundary curves P1, P2 and corresponding derivative curves d1, d2.
At step 702, a first spine S1 is calculated from the control curves. Suitably the first spine S1 is displayed along with the first set of control curves.
At step 703, optionally a PDE surface patch is calculated and displayed, as defined by the first set of boundary curves P1, P2 and d1, d2 and the first spine S1. Alternatively, the system may work simply with the boundary curves and spine, without resolving the PDE surface patch at this stage.
At step 704, the first spine S1 is manipulated to provide a new second spine S2. For example, the system provides an interface for a designer to click and drag one end of the spine to a desired new position.
At step 705, the new spine S2 is used to provide a second set of control curves P1′, P2′ and d1′, d2′. In the preferred embodiment, the spine S2 defines an updated term A0′ which is used to recalculate the solution of the partial differential equation and provide the update second set of control curves. Optionally, the new position of the spine S2 and the updated control curves are displayed. Also, optionally the new shape of the PDE surface patch is calculated and displayed.
With this iterative process, iterative adjustments can be made to the spine with corresponding recalculations of the control curves in the PDE surface patch, until a satisfactory result is achieved. That is, the spine Sn and the corresponding control curves P1n, P2n and d1n, d2n are adjusted by spine Sn+1 to give the resultant updated control curves P1n+1, P2n+1 and d1n+1, d2n+1.
Conversely, adjusting any one or more of the control curves P1n, P2n and d1n, d2n to provided updated control curves P1n+1, P2n+1 and d1n+1, d2n+1 results in a corresponding change to the shape of the spine from Sn to Sn+1.
That is, in some instances it is appropriate to adjust the spine to manipulate the object. In other circumstances it is preferable to alter one or more of the control curves to manipulate the object, and in doing so thereby also adjust the spine.
Spine Manipulation
As discussed above, manipulation of the spine S is a powerful and intuitive mechanism to manipulate the shape of a PDE surface. There are many ways in which the spine can be utilised in various different embodiments of the invention. A particularly preferred mechanism for defining and manipulating the spine S will now be described in more detail.
Preferably, the spine S is the cubic polynomial described by the A0 term in Equation (3), and is considered to be a Hermite curve of the form
H
(u)=B1(u)p1+B2(u)p2+B3(u)v1+B4(u)v2 (11)
where the Bj are the Hermite basis functions, and the vectors P1, P2 and v1,v2 define the position and the speed of the Hermite curve at u=0 and u=1 respectively. By comparing the Hermite curve given in Equation (11) with the cubic for the spine S given as the A0 term in Equation (3), the vector constants a00, a01, a03 given in Equation (4) can be related to the position vectors and its derivatives at the end points of the spine S. Since the A0 term in Equation (3) is an integral part of the preferred solution that generates the surface shape, any change in the shape of the spine S will have a resulting change in the shape of the surface.
A useful mechanism to change the shape of the spine S is to manipulate its position and the derivative at the two end points. Therefore, the position vectors and its derivatives at the end of points of the Hermite curve describing the spine are defined to be a new set of shape parameters that enable manipulation of the shape in an intuitive fashion.
To demonstrate this idea, consider the cylindrical shape shown in
b shows another example of shape manipulation using the spine S. Here the shape of the aircraft shown in
In both of these examples, the shape manipulations were carried out interactively via the position vectors P1 and P2 and the direction vectors v1 and v2, for each of the corresponding surface patches. The position vectors P1 and P2 are conveniently changed by means of clicking and dragging the points in 3-space. The direction vectors v1 and v2 are conveniently changed by changing the size and the direction of the arrows shown.
Apparatus and Data Storage
As shown in
The apparatus may be constructed from dedicated hardware, such as a dedicated graphics processor within a computer platform. Alternatively, the present invention is implemented as computer software running on a general purpose computer platform. Further, the present invention extends to a storage medium containing machine-readable instructions to perform the methods and tools described herein.
Referring again to
Also, in the embodiment of
By sending just the control curves and optionally the spine, the data storage format is very compact. However, a recipient is immediately able to recreate the PDE surface patch exactly and confidently from the described curves as boundary conditions to the chosen partial differential equation.
As an example, the aircraft shape of
This curve can be written in terms of an infinite Fourier series as:
Since the series in Equation (12) is infinite, it is not practical to store this data on a computer platform. To overcome this problem, a finite Fourier analysis of the curve is performed to obtain a close approximation of the curve as shown in
where M is a finite number, typically taken to be 10.
Next the difference between the original curve shown in
where R represents a vector corresponding to the difference between the original curve (
Thus, the preferred method enables convenient storage of the data of any curve in terms of a finite Fourier series and a difference vector R.
S=a
00
+a
01
u+a
02
u
2
+a
03
u
3, (15)
As shown in
Although a few preferred embodiments have been shown and described, it will be appreciated by those skilled in the art that various changes and modifications might be made without departing from the scope of the invention, as defined in the appended claims.
Attention is directed to all papers and documents which are filed concurrently with or previous to this specification in connection with this application and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference.
All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
The invention is not restricted to the details of the foregoing embodiment(s). The invention extends to any novel one, or any novel combination, of the features disclosed in this specification (including any accompanying claims, abstract and drawings), or to any novel one, or any novel combination, of the steps of any method or process so disclosed.
Number | Date | Country | Kind |
---|---|---|---|
0502003.7 | Feb 2005 | GB | national |
This application is a Continuation of application Ser. No. 11/072,046 filed Mar. 4, 2005 by Hassan Ugail and entitled “STORING OR TRANSMITTING DATA REPRESENTING A 3D OBJECT”, which claims priority to UK Patent Application No. GB 0502003.7, filed Feb. 1, 2005, the contents of which are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
Parent | 11072046 | Mar 2005 | US |
Child | 12126309 | US |