CA1285660C - Method and system for solid modelling - Google Patents
Method and system for solid modellingInfo
- Publication number
- CA1285660C CA1285660C CA000545963A CA545963A CA1285660C CA 1285660 C CA1285660 C CA 1285660C CA 000545963 A CA000545963 A CA 000545963A CA 545963 A CA545963 A CA 545963A CA 1285660 C CA1285660 C CA 1285660C
- Authority
- CA
- Canada
- Prior art keywords
- sub
- box
- primitive
- boxes
- transform
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Abstract
ABSTRACT
A method of generating a spatial representation of a 3-D solid object which comprises component shapes which can be defined by transforming constructive solid geometry primitives comprises the steps of setting up a structure to define the object in terms of the primitives and transforms and setting up a definition of a 3-D box in a world space and then sub-dividing the box into sub-boxes, generating test-cells in object space by performing on the sub-boxes the inverse of each transformation to be performed on the primitives to create the object and determining which of the test-cells intersect the object. Thus, the need to transform the object primitives is avoided. A particular application of the method is the generation of 2-D images of a 3-D solid object. A solid modelling system comprising means for performing the method is defined.
A method of generating a spatial representation of a 3-D solid object which comprises component shapes which can be defined by transforming constructive solid geometry primitives comprises the steps of setting up a structure to define the object in terms of the primitives and transforms and setting up a definition of a 3-D box in a world space and then sub-dividing the box into sub-boxes, generating test-cells in object space by performing on the sub-boxes the inverse of each transformation to be performed on the primitives to create the object and determining which of the test-cells intersect the object. Thus, the need to transform the object primitives is avoided. A particular application of the method is the generation of 2-D images of a 3-D solid object. A solid modelling system comprising means for performing the method is defined.
Description
UK9-~86-017 METHOD AND SYSTEM FOR SOLID MODELLING
The present invention relates to a method of generating a spatial representation of a three-dimensional solid object and to a solid modelling system for performing such a method.
Objects may be represented in a graphics processing systems using ` various techniques. One which is particularly suitable for representing solid objects is "Constructive 501id Geometry" (CSG). In accordance with this technique a three dimensional (3-D) solid object is , ' represented by a functional definition identifying the set of points which lie within the object. Typically, the object is defined by a Boolean function which returns a "true" if applied to a point within the object and returns a "false" otherwise. This techniqué contrasts with, for example, line drawing techniques where the edges and surfaces of an object are defined rather than its volume.
The functional definition of an object effectively defines the set of lS points which make up the object. The functional definition of a sphere, ~or example, defines the set of points lying within a given radius of a centre point. Composite objects are defined by combining the functional definitions of constituent basic objects, or "primitives", eg spheres, infinite planes, infinite cylinders. The Eunctional definition of a dumb--bell, for example, would comprise the functional dePinition of each of two spheres at different positions, the functional definition of an infinite cylinder whose c~xis passes through the centres of the spheres and the functional definltions of two planar half-spaces which truncate the cylinder at the spheres, the functional definitions of the spheres, the cylinder and the planar half-spaces being combined using set union and intersect operators (ie using set theory principles). Primitives can also be combined using other combinational operators such as set subtracting operators to define, for example, a composite object with a cut-out or hole. In this way hollow composite objects can be defined by subtracting a smaller object from a larger one. Such composite o~jects are still "solid" within-the meaning of this application because the individual object definitions which make up the composite object are solid.
~285~
., A composite object formed from primitives can be structured in a number of ways. However it is usual to use a tree structure with the composite object being defined at the root of the tree, the primitives being defined at the leaves and operators being defined at nodes in the tree to identify the combinational operations to be performed to construct the object from the primitives and/or sub-objects defined at lower-order nodes in the tree.
The range of shapes which can be defined in this way is, in practice, dependent on the set of primitives chosen. In many prior systems, objects are constructed only from planar half-spaces. A planar half-space is a functional definition of an infinite object which exists on one side of a plane. The functional definition of a cube is, for example, defined by combining the functional definitions of six half-spaces using the set intersection operator. Other systems have ; 15 also been implemented using cylinders, spheres, tori, ellipsoids and even helices.
Some shapes still cannot be defined exactly however using these techniques. Examples are an egg shape (which is essentially a tapered ; spherei, a helix with a box~shaped cross section, or a double-coiled helix. These have conventionally been approximated, often with great difficulty, from simpler shapes, normally planar half-spaces.
It has been suggested to generate significant class of such shapes by applying transformations to existing primitives. For instance, an egg shape could be produced by applying a tapering transform ~one where the scale factor varies along one of the axes) to a sphere. A cylinder could be turned into a helix by using a transform to twist it about an axis. Samples of such transforms are given by Alan Barr in Computer Graphics Vol 18, No 3, pages 21-30. Even using the techniques described in this article, however, it is only possible to generate effective representations of a relati~ely simple class of objects.
, .. : , ~2~5~
..
By effective representations is meant a representation which cah, in practice, be subjected to processing in order to produce a useful result. The result of processing can take many forms. It is often desired to generate a two-dimensional (2-D) image of the object. It may be necessary to calculate critical data relating to an object such as volume, centre of mass~ moment of inertia and surface area. It may also need to be known whether two objects co-occupy a region of space at any particular time, for example for robotic control.
In order to process the functional definition of an object, a technique called spatial subdivision is frequently employed. This technique, as applied to a method of generating a 2-D perspective view of a 3-D solid object, is described by Woodwark and Quinlan in their paper entitled "Reducing The Effect Of Complexity On Volume Model Evaluation" which was published in March 1982 in Computer Design, Vol. 14, NG. 2. Their method can be summarised as follows:
; The object to be rendered is transformed from world space into perspective viewing space. This perspective representation of the object is then enclosed in a box A test is made to find whether the box intersects this object~ If it does the box is subdivided into eight equal sub-boxes, dividing each square face into four smaller rectangles.
These smaller rectangular boxes are then tested in turn and any of which are empty are discarded. Those which contain part of the object are kept and subdivided again and the process is repeated until the rectangular boxes are sufficiently small to correspond with single ; screen pixels. These pixels are then coloured appropriately on the screen.
; This prior method works well in principle, as long as the object to be rendered can be easily defined in both world space and perspective viewing space - if the object has, for example, flat surfaces. In the case of objects with a very complex shape, however, the functional definitions of the objects become so unmanageable that their method is impractical. -~ .
~2l 3S660 U~9-86-017 4 Although Woodwark ~ Quinlan's article describes a method of generating a two-dimensional image of a 3-dimensional solid object using a spatial subdivision method there is, however, no suggestion of how a complex object may be defined using transforms and primitives, whether for the generation of images, or otherwise.
There is developing a need to model very complex objects indeed in fields as diverse as medicine and robotics, for example. In the medical field it would be useful, for example, to be able to easily generate accurate 3-D representations of organs such as the heart, and many other ' 10 parts of the body such as blood vessels from X-ray and other such data, for the planning intricate surgery. In the robotics field, there is a need, for example, to model machined parts as accurately as possible in order to improve machining and assembly processes.
.~ . .
Thus the objects which it is now desired to model are of a degree of 15 complexity which cannot adequately be handled using prior techniques.
As an example, consider the problems involved in modelling a network of blood vessels using primitives in the form of infinite cylinders. it may be necessary to perform any combination of truncating, twisting (about the axis), bending, sheering, scaling, transformation and joining 20 operations. The prior art does not teach how representations of such complex models may be generated which can be processed in an effective way.
The present invention seeks therefore to provide an improved modelling technique based on the principles of constructive so]id geometry which 25 enables spatial representations of complex objects to be generated in an easy and effective manner.
In accordance with a first aspect of the present invention, there is provided a method of generating a spatial representation of a ; three-dimensional solid object in a system comprising storage and ~ 30 proces~ing means, the method comprising:
.
.
.,~ , .
, ,, .: . . .
~2~
,.
(a) the initial step of establishing in storage - a structure for defining the object, the structure including the functional definitions of at least one primitive and at least one transform operator~ and - a functional definition of a three-dimensional box defining world space;
(b) - followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose si~e corresponds to at least a desired resolution and - for at least one primitive in the structure, traversing the structure to identify whether any transform operators are to be applied to the primitive as defined by the structure, and, if so, generating test-cells in primitive space from the sub-boxes using the inverse of the or each transform operator so identified and determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not, whereby a spatial representation of the object may be generated without performing transform operations on the object or the component primitives thereof.
In accordance with a further aspect of the present invention, there is also provided a method of generating a spatial representation of a ~ three-dimensional solid object in a system comprising storage and .; processing means, the method comprising:
' '~
:
- .
~.285~i~
(a) the initial step of establishing in storage - a structure for defining the object, the structure including the functional definitions of a plurality of primitives and a plurality of transform operators; and ~ a functional definition of a three-dimensional box defining world space; .
~b) followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least :
a desired resolution and - for a given sub-box and a given primitive in the structure traversing the structure to that primitive to identify whether any transform operators are to be applied thereto as defined by the structure, and, if so, generating a test-cell in primitive space from the given sub-box using the inverse of the or each transform operator so identified and determining whether the sub-box has a corresponding ..
test-cell which intersects the primitive, whereby a spatial representatlon o~ the object may be generated without performing transform operations on the object or the component primitives thereof.
In accordance with yet a further aspect of the present invention, there is al~o provided a solid modelling system comprising means Por generating a spatial representation of a three-dimensional solid object, said means for generating a functional representation of the transform of the object including:
, .,.
~35660 - object definition means for storing a structure defining the object, the structure including at least one primitive and at least one transform operator;
- world space definition means for storing a functional definition of a three-dimensional box defining world space; and - processing means - for subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose si~e corresponds to at least a desired resolution, and ::. 10 - for at least one primitive in the structure, for traversing the structure to determine whether any transform operators are to be applied to the primitive as defined by the structure an~, if so for generating test-cells in primitive space from sub-boxes using the inverse of the or each transform operator so identified, and for determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not.
The Applicants' co-pending application of even date tIBM docket Number UK9-~5-004) relates to the generation of two dimensional images only of a transfol~ of a three-dimensional solid object. The present invention on the other hand is concerned with the generation of a spatial representation ~which could be a 2-D image, but is in the most general case purely a representation in spatial terms of an object w~ich can be used to perform, for example, mass calculations) of objects which cannot be defined directly in terms of primitives.
The present invention will be further described with reference to the attached drawings wherein:
~' ~ ,, , ' .
i60 U~9-86-017 8 Figures lA, lB and lC illustrate the principles of constructive solid geometry as known in the prior art;
Pigures 2A, 28, 2C and 2D illustrate the principles of generating a spatial representation of a 3-D object in accordance with the present invention; and ~igure 3 is a schematic block diagram showing the interrelationship between logical and storage units of part of a solid modelling system.
Before describing the present invention in detail it is perhaps useful to discuss the principles of evaluating a functional definition of an object using CSG with re~erence to Figures lA, lB and lC.
In general terms, the evaluation of a solid model is the process of determining inside and outside and thus the boundaries of the solid.
The most common use of the evaluation process is to draw a 2-D picture of the object but it can also be used to compute the mass pxoperties such as volume or centre of gravity, to determine the surface area of the object and so on.
~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Conventionally an object is defined in accordance with the principles of ~onstructive solid geometry in terms of a tree structure such as that shown in Figure lB.
Figure lA is an illustration of a dumb-bell such as that mentioned earlier. Figure lB illustrates a tree structure representing the dumb-bell. A practical implementation of this could be a linked-list storage structure. Mathematically, the definition of the dumb-bell could be expressed as:
O
~ Dumb-bell 10 -- A+B~C*D*E
: .
lZ~
where "*" is the mathematical union operator represented by "AND" in ; Figure lB, "+" is the mathematical intersection operator represented by ; "OR" in Figure lB and A, B, C, D and E are the mathematical expressions for the sphere, A centred at a point, a, the sphere, ~ centred at a point, b, the infinite cylinder, C, the half space, D, to the right of the line 10 and the half-space, E, to the left of the line 14. The functional definitions of the primitives A, B, C, D and E are to be found respectively at 22a, 22b, 22c, 22d and 22e in the tree structure.
The mathematical operators are defined at nodes 24.
In order to perform calculations based on such a definition it is usual to employ a spatial sub-division technique as illustrated in Figure lC.
The basic method of spatial sub-division is as follows:
A rectangular region of space (30) is considered containing the object to be evaluated. The constructive solid geometry expression, or functional definition, which defines the object is inspected and simplified within this region of space. The simplification is not valid everywhere, but is equivalent to the original object within the region under consideration. The simplification procedure is:
1. For primitive objects, determine whether the object is completely o~ltside the cube of space. If it is, replace the object by an EMPTY object, one which has no inside. Also determine whether the object completely encompasses the region of space. If this is so, replace the object by a FULL object - one which has no outside.
The present invention relates to a method of generating a spatial representation of a three-dimensional solid object and to a solid modelling system for performing such a method.
Objects may be represented in a graphics processing systems using ` various techniques. One which is particularly suitable for representing solid objects is "Constructive 501id Geometry" (CSG). In accordance with this technique a three dimensional (3-D) solid object is , ' represented by a functional definition identifying the set of points which lie within the object. Typically, the object is defined by a Boolean function which returns a "true" if applied to a point within the object and returns a "false" otherwise. This techniqué contrasts with, for example, line drawing techniques where the edges and surfaces of an object are defined rather than its volume.
The functional definition of an object effectively defines the set of lS points which make up the object. The functional definition of a sphere, ~or example, defines the set of points lying within a given radius of a centre point. Composite objects are defined by combining the functional definitions of constituent basic objects, or "primitives", eg spheres, infinite planes, infinite cylinders. The Eunctional definition of a dumb--bell, for example, would comprise the functional dePinition of each of two spheres at different positions, the functional definition of an infinite cylinder whose c~xis passes through the centres of the spheres and the functional definltions of two planar half-spaces which truncate the cylinder at the spheres, the functional definitions of the spheres, the cylinder and the planar half-spaces being combined using set union and intersect operators (ie using set theory principles). Primitives can also be combined using other combinational operators such as set subtracting operators to define, for example, a composite object with a cut-out or hole. In this way hollow composite objects can be defined by subtracting a smaller object from a larger one. Such composite o~jects are still "solid" within-the meaning of this application because the individual object definitions which make up the composite object are solid.
~285~
., A composite object formed from primitives can be structured in a number of ways. However it is usual to use a tree structure with the composite object being defined at the root of the tree, the primitives being defined at the leaves and operators being defined at nodes in the tree to identify the combinational operations to be performed to construct the object from the primitives and/or sub-objects defined at lower-order nodes in the tree.
The range of shapes which can be defined in this way is, in practice, dependent on the set of primitives chosen. In many prior systems, objects are constructed only from planar half-spaces. A planar half-space is a functional definition of an infinite object which exists on one side of a plane. The functional definition of a cube is, for example, defined by combining the functional definitions of six half-spaces using the set intersection operator. Other systems have ; 15 also been implemented using cylinders, spheres, tori, ellipsoids and even helices.
Some shapes still cannot be defined exactly however using these techniques. Examples are an egg shape (which is essentially a tapered ; spherei, a helix with a box~shaped cross section, or a double-coiled helix. These have conventionally been approximated, often with great difficulty, from simpler shapes, normally planar half-spaces.
It has been suggested to generate significant class of such shapes by applying transformations to existing primitives. For instance, an egg shape could be produced by applying a tapering transform ~one where the scale factor varies along one of the axes) to a sphere. A cylinder could be turned into a helix by using a transform to twist it about an axis. Samples of such transforms are given by Alan Barr in Computer Graphics Vol 18, No 3, pages 21-30. Even using the techniques described in this article, however, it is only possible to generate effective representations of a relati~ely simple class of objects.
, .. : , ~2~5~
..
By effective representations is meant a representation which cah, in practice, be subjected to processing in order to produce a useful result. The result of processing can take many forms. It is often desired to generate a two-dimensional (2-D) image of the object. It may be necessary to calculate critical data relating to an object such as volume, centre of mass~ moment of inertia and surface area. It may also need to be known whether two objects co-occupy a region of space at any particular time, for example for robotic control.
In order to process the functional definition of an object, a technique called spatial subdivision is frequently employed. This technique, as applied to a method of generating a 2-D perspective view of a 3-D solid object, is described by Woodwark and Quinlan in their paper entitled "Reducing The Effect Of Complexity On Volume Model Evaluation" which was published in March 1982 in Computer Design, Vol. 14, NG. 2. Their method can be summarised as follows:
; The object to be rendered is transformed from world space into perspective viewing space. This perspective representation of the object is then enclosed in a box A test is made to find whether the box intersects this object~ If it does the box is subdivided into eight equal sub-boxes, dividing each square face into four smaller rectangles.
These smaller rectangular boxes are then tested in turn and any of which are empty are discarded. Those which contain part of the object are kept and subdivided again and the process is repeated until the rectangular boxes are sufficiently small to correspond with single ; screen pixels. These pixels are then coloured appropriately on the screen.
; This prior method works well in principle, as long as the object to be rendered can be easily defined in both world space and perspective viewing space - if the object has, for example, flat surfaces. In the case of objects with a very complex shape, however, the functional definitions of the objects become so unmanageable that their method is impractical. -~ .
~2l 3S660 U~9-86-017 4 Although Woodwark ~ Quinlan's article describes a method of generating a two-dimensional image of a 3-dimensional solid object using a spatial subdivision method there is, however, no suggestion of how a complex object may be defined using transforms and primitives, whether for the generation of images, or otherwise.
There is developing a need to model very complex objects indeed in fields as diverse as medicine and robotics, for example. In the medical field it would be useful, for example, to be able to easily generate accurate 3-D representations of organs such as the heart, and many other ' 10 parts of the body such as blood vessels from X-ray and other such data, for the planning intricate surgery. In the robotics field, there is a need, for example, to model machined parts as accurately as possible in order to improve machining and assembly processes.
.~ . .
Thus the objects which it is now desired to model are of a degree of 15 complexity which cannot adequately be handled using prior techniques.
As an example, consider the problems involved in modelling a network of blood vessels using primitives in the form of infinite cylinders. it may be necessary to perform any combination of truncating, twisting (about the axis), bending, sheering, scaling, transformation and joining 20 operations. The prior art does not teach how representations of such complex models may be generated which can be processed in an effective way.
The present invention seeks therefore to provide an improved modelling technique based on the principles of constructive so]id geometry which 25 enables spatial representations of complex objects to be generated in an easy and effective manner.
In accordance with a first aspect of the present invention, there is provided a method of generating a spatial representation of a ; three-dimensional solid object in a system comprising storage and ~ 30 proces~ing means, the method comprising:
.
.
.,~ , .
, ,, .: . . .
~2~
,.
(a) the initial step of establishing in storage - a structure for defining the object, the structure including the functional definitions of at least one primitive and at least one transform operator~ and - a functional definition of a three-dimensional box defining world space;
(b) - followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose si~e corresponds to at least a desired resolution and - for at least one primitive in the structure, traversing the structure to identify whether any transform operators are to be applied to the primitive as defined by the structure, and, if so, generating test-cells in primitive space from the sub-boxes using the inverse of the or each transform operator so identified and determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not, whereby a spatial representation of the object may be generated without performing transform operations on the object or the component primitives thereof.
In accordance with a further aspect of the present invention, there is also provided a method of generating a spatial representation of a ~ three-dimensional solid object in a system comprising storage and .; processing means, the method comprising:
' '~
:
- .
~.285~i~
(a) the initial step of establishing in storage - a structure for defining the object, the structure including the functional definitions of a plurality of primitives and a plurality of transform operators; and ~ a functional definition of a three-dimensional box defining world space; .
~b) followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least :
a desired resolution and - for a given sub-box and a given primitive in the structure traversing the structure to that primitive to identify whether any transform operators are to be applied thereto as defined by the structure, and, if so, generating a test-cell in primitive space from the given sub-box using the inverse of the or each transform operator so identified and determining whether the sub-box has a corresponding ..
test-cell which intersects the primitive, whereby a spatial representatlon o~ the object may be generated without performing transform operations on the object or the component primitives thereof.
In accordance with yet a further aspect of the present invention, there is al~o provided a solid modelling system comprising means Por generating a spatial representation of a three-dimensional solid object, said means for generating a functional representation of the transform of the object including:
, .,.
~35660 - object definition means for storing a structure defining the object, the structure including at least one primitive and at least one transform operator;
- world space definition means for storing a functional definition of a three-dimensional box defining world space; and - processing means - for subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose si~e corresponds to at least a desired resolution, and ::. 10 - for at least one primitive in the structure, for traversing the structure to determine whether any transform operators are to be applied to the primitive as defined by the structure an~, if so for generating test-cells in primitive space from sub-boxes using the inverse of the or each transform operator so identified, and for determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not.
The Applicants' co-pending application of even date tIBM docket Number UK9-~5-004) relates to the generation of two dimensional images only of a transfol~ of a three-dimensional solid object. The present invention on the other hand is concerned with the generation of a spatial representation ~which could be a 2-D image, but is in the most general case purely a representation in spatial terms of an object w~ich can be used to perform, for example, mass calculations) of objects which cannot be defined directly in terms of primitives.
The present invention will be further described with reference to the attached drawings wherein:
~' ~ ,, , ' .
i60 U~9-86-017 8 Figures lA, lB and lC illustrate the principles of constructive solid geometry as known in the prior art;
Pigures 2A, 28, 2C and 2D illustrate the principles of generating a spatial representation of a 3-D object in accordance with the present invention; and ~igure 3 is a schematic block diagram showing the interrelationship between logical and storage units of part of a solid modelling system.
Before describing the present invention in detail it is perhaps useful to discuss the principles of evaluating a functional definition of an object using CSG with re~erence to Figures lA, lB and lC.
In general terms, the evaluation of a solid model is the process of determining inside and outside and thus the boundaries of the solid.
The most common use of the evaluation process is to draw a 2-D picture of the object but it can also be used to compute the mass pxoperties such as volume or centre of gravity, to determine the surface area of the object and so on.
~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Conventionally an object is defined in accordance with the principles of ~onstructive solid geometry in terms of a tree structure such as that shown in Figure lB.
Figure lA is an illustration of a dumb-bell such as that mentioned earlier. Figure lB illustrates a tree structure representing the dumb-bell. A practical implementation of this could be a linked-list storage structure. Mathematically, the definition of the dumb-bell could be expressed as:
O
~ Dumb-bell 10 -- A+B~C*D*E
: .
lZ~
where "*" is the mathematical union operator represented by "AND" in ; Figure lB, "+" is the mathematical intersection operator represented by ; "OR" in Figure lB and A, B, C, D and E are the mathematical expressions for the sphere, A centred at a point, a, the sphere, ~ centred at a point, b, the infinite cylinder, C, the half space, D, to the right of the line 10 and the half-space, E, to the left of the line 14. The functional definitions of the primitives A, B, C, D and E are to be found respectively at 22a, 22b, 22c, 22d and 22e in the tree structure.
The mathematical operators are defined at nodes 24.
In order to perform calculations based on such a definition it is usual to employ a spatial sub-division technique as illustrated in Figure lC.
The basic method of spatial sub-division is as follows:
A rectangular region of space (30) is considered containing the object to be evaluated. The constructive solid geometry expression, or functional definition, which defines the object is inspected and simplified within this region of space. The simplification is not valid everywhere, but is equivalent to the original object within the region under consideration. The simplification procedure is:
1. For primitive objects, determine whether the object is completely o~ltside the cube of space. If it is, replace the object by an EMPTY object, one which has no inside. Also determine whether the object completely encompasses the region of space. If this is so, replace the object by a FULL object - one which has no outside.
2. For compound objects made by applying set operators, recursively apply (essentially three-valued) Boolean logic to the simplified operands. For example:
,,~
'.
128~;660 U~9-86-017 10 ., ~
EMPTY UNION expression2 -> expression2 expressionl UNION EMPTY -> expressionl FULL UNION expression2 -> FULL
expressionl UNION FULL -> FULL
and EMPTY INTE~SECT expression 2 -> EMPTY
expressionl INTERSECT empty -> EMPTY
FULL INTERSECT expression2 -> expression2 expressionl INTERSECT FULL -> expressionl , . :
If the result of this simplification is EMPTY, the object has no inside within the region under consideration. If a picture is being drawn, this region will make no contribution to the screen image. If mass properties are being computed, the region will make no contribution to the volume or moment.
If the result of the simplification is FULL, the region is completely occupied by the object. Normally, when constructing a picture from one view, this region will not contribute to the image as it does not contain a surface Eacing the viewer, and the inside of an object is hidden by its surfaces. For mass properties however, the entire region will contribute to the volume or moment being computed.
.
Normally, the expression will contain at least one term. In some circumstances, the expression will be sufficiently simple to be treated ; directly. For instance it may be a single planar half-space. The contribution to the picture or mass property of the total object can be computed directly. In order to proceed in other cases, the region of space is divided into smaller regions. Most simply, it could be divided in half perpendicular to its longest dimension. Figure lC shows the division of the rectangular box-shaped region of space into 8 sub-boxes 31, 32, 33, 34, 35, 36, 37, 38. The simplification process is then repeated on these two new regions until expressions such as FULL, EMPTY
or other simple cases are obtained.
~ .
S~
Eventually, some lower limit on the size of regions is reached and still some regions contain non-simple expressions. When drawing a picture, a eonvenient stopping point is when regions have a frontal area which is smaller than or equal to that of a pixel. At this stage, regions which eontain a single object will contain a pixel-sized surface of the objeet. Regions containing two objects will contain an edge where the two surfaees meet and regions eontaining three objects will normally contain a vertex.
The action depends on the calculation being performed. When drawing a picture, the surface or edge is drawn. For a surface, the surface normal is computed at the centre of the region of space and this is used, in conjunction with the known positions of light sources to compute the amount of light reflected from that point toward the viewer.
For a more complex edge or vertex region, a ray-tracing method can be used to isolate one visible surface to be treated in this way. When computing mass properties, the cell can simply be assumed to be ; half-full.
However, as has already been mentioned, although this approach works in theory, lt is impractical for a large set of objects and/or transformations where the complexity of the transformed functional definitions is to high. Thus, this approach would not be practieal where the component parts of the objects eannot be defined by simple graphics primitives.
The present invention enables eomplex objeets to be defined, whieh ean be deseribed by performing transforms on simple primitives ana by eomhining the transforms and primitives. In praetice, the resulting definitions would be too complex to be handled directly so, instead of ` ; transforming the component primitives of the object, space is transformed instead. The functional representation of box, say a ; rectangular box, is established which defines the space (world space) in which the object is to be defined. However, rather than transforming .. . .
. .
~s~
U~9-86-017 12 the simple primitives from their original coordinate system into world space (which is the principle of Barr's technique~, the rectangular box is instead transformed ~hrough the inverse o~ the transformation which would conventionally have been performed on the object primitives.
Thus, the rectangular box is subjected to the sub-division algorithm discussed above, but with the inverse transforms of the sub-boxes created being tested for intersection with the primitives in their original co-ordinate systems, and the need to transform the primitives themselves can be eliminated.
For example, to scale a primitive up by factors of, say, sx,sy and sz along the coordinate axes, the region of world space under consideration (ie a region of the space within which the object comprising the scaled down up primitive exists is transformed down by these factors and this scaled down region is compared in the "object" space in which the primitive was originally defined with the unscaled primitive. The results are the same as testing the scaled up primitive in world space against the unscaled region of that world space.
.
For transforms such as scaling and translation, the scaled region .. . . . . . . = . ~
remains a rectangular box to the axes after transformatlon. For rotation, the space rem~ins rectangular but is no longer parallel to the axes. For trans~ormations such as bending or twisting, the space becomes bent or twisted in the reverse direction and is no longer simply rectangular. It is necessary to test the object against this new, transformed, space. Figures 2A to 2D illustrate an example of this for the dumb-bell discussed earlier, but where the bar of the dumb-bell is bent.
The sub-division algorithm is not affected in any material way if the region of space considered is larger by some factor than it should be.
All that will happen is that the expression resulting from the simplification will sometimes contain terms which, ~trictly speaking, could be eliminated. Provided the error is reduced as the regions under _ . , )~ : . . .. ... . ... ..
~ 28~;6~
consideration get smaller, these r~dundant terms will be eliminated later in the evaluation. Efficiency will be reduced and it may be necessary to continue evaluation to a smaller minimum region-size but the sub-division algorithm continues to operate correctly.
The principles of the present invention will now be discussed in more detail with reference to Figures 2A and 2D and Figure 3.
Figure 3 shows the functional organisation of part of a solid modelling system such as a yraphics processing systemO
These functional elements could be implemented by suitably programming a conventional programmable graphics processing system. Alternatively, the functional units shown in the figure could be provided as separate hardwired circuits in a graphics processing system. Conventionally, a graphics processing system will comprise storage and processing means, and means for the input of data (eg a keyboard) and for the output of lS data (es a cathode ray tube display device). The functional elements shown could, alternatively form part of the control mechanism of a robot.
Figure 2A shows a dumb-bell 10' similar to that shown in Figure lA, but with a bent bar.
Mathematically the definition of this dumb-bell can be represented as Dumb-bell 10' = ~tl,A)~(t2B)~(t3(C+D+E)) where "*" is the mathematical union operator, "~" is the mathematical intersect operator, A, B, C, D and E are the mathematical expressionS
Por the sphere A of Figure lA centred at the point 'a', the sphere B of Figure lA centred at the point 'b', the infinite cylinder C, the half-space D to the right of the line 12 and the half-space E to the left of the line 14 and wherein t1 and t2 are translation operators and t3 is a bending operator.
, ~2~
In accordance with the principIes of the present invention the primitive and the combinational operator definitions are included in a structure defining the obiect. This structure could take the form of a tree-shaped structure such as is shown in Figure 2B. One practical implementation of this structure could take the form of a linked--list structure with different storage element types in the structure identifying whether an element defines primitive, a combinationaI
operator or a transform operator. Object definition storage 72 is provided for the structure forming the object definitionO In the following it is assumed that the object is defined in terms of a linked-list tree structure.
World space definition storage 54 is also provided for a functional definition of the box representing world space. Usually the box will be rectangular. It could however take any other suitable shape, eg that of a cylinder. The functional definition could also take any suitable form. One possibility would be a tree structure in the form of a linked list. The definition of a rectangular box could then take the fo~n of the intersection of six planar half-spaces. Another p~ossibility, for a cube, would be to identify the centre of the cube and the vector from that centre to one corner of the cube. In the following it is assumed that the test-box is rectangular.
The control logic 58 causes the box/sub-box definition logic 60 to select the rectangular box for comparison against the object. The transform determination and object simplification logic 68 is used to generate a simplified functional definition in the case where the object to be transformed is formed from a plurality of primitives. After one or more sub-divisions of the rectangular box, the output of the comparison logic may show that the test-cell does not intersect one or more of the primitives in the object. In this case, on ~urther sub-divisions of that region of the rectangular box, the functional definitions of these primitives need not be compared against the test-cells for that sub-divided region. The object simplification logic .
~ 2~
..
selects those parts of the functional definition of the whole ob~ect ; which are relevant at any stage dependent on the results of previous comparison operations. Then the object simplification logic 68 is caused to select the primitives for comparison against the transforms of the box or sub-box currently selected. For each primitive so selected the transform determination and object simplification logic also identifies the transform operation~s) which would be needed to transform that primitive into world space to create the object. The inverse of each of the transforms so indicated is then identified in the transform operator storage 56.
The box or sub-box currently selected is then subjected to the or each inverse transform operator in the inverse transform processing logic 62 and a test box is generated. The resulting test-box can then either be passed by the test-cell generation logic 64 directly to the comparison logic 66 as the test-cell, or, as will be described later, a simplified test-cell can be generated from the inverse transform of the rectangular box (or sub-box) by that logic 64 and this passed to the comparison logic 66.
~ .
The object and the test-cell functional definitions are tested for intersection by being compared in the comparison logic 66 and an essentially three-valued ~oolean comparison output is generated as de~scribed earlier - ie FULL, EMPTY or partly filled. ~he output of the comparison logia is passed to the control loglc 58 and to the transform determination and object simplification logic 68.
~ 25 The control logic reacts in one of a number of ways dependent on the ; ~ xesult of the comparison for each test-cell and primitive:
, ; 1) In the case where an intersection is detected and the box or sub-box under consideration is larger than a desired resolution, then the control logic causes the box/sub-box subdivision logic to i~ 30 divide the box or sub-box under consideration into a number of , smaller sub-boxes for evaluation in ord~r in the next stage.
,~ Figure 2C shows the sub-division by eight, although another factor, ~ eg 2, could be chosen.
,, : , ~28~
ii) In the case where an intersection is detected and the size of the box or sub-box under consideration corresponds to the desired resolution, then this fact is stored in the result storage 70.
iii) If there is no intersection, then examination of the box or sub-box under consideration is terminated and this fact is recorded.
Figures 2C and 2D illustrate the principles of the present invention.
Instead of transforming the component primitives teg the cylinder C and the two half-spaces D and E) into world space as is illustrated in dotted lines in Figure 2C, the functional definitions of the component primitives are retained in their original co-ordinate systems and space is transformed instead. Thus a region of space 39 in world space is transformed using the inverse of the bending transform t3 identified in the tree structure shown in Figure 2B to generate a test-cell 38' in the co-ordinate system of the cylinder C for comparison against that cylinder. For comparison of a region of world space against the sphere A or B a different transform (tl or t2 respectively) would be performed on the space because these spheres have merely been displaced (from a to a' or from b to b' respectively) for the dumb-bell lO',and not bent.
The test-cells can be formed by the functional definitions of the inverse transforms of the sub-boxes. This is not, however, essential.
The inverse transform of a sub-box could instead be replaced by a simple 3-D volume centred on and circumscribing that inverse transform.
By a simple 3-D volume is meant a volume such as a sphere, rectangular boxes or an ellipsoid which is relatively easy to define and to process.
This is because any part of the object which intersects the inverse transform of the suh-box will also intersect the circumscribing sphere or rectangular box or ellipsoid centred on that transform. If a simplified test-cell is used - this would be generated by the test-cell generation logic 44 - the effect on the method woul~ only be that it may be necessary to introduce a further stage of sub-division in order to _.
356~q~
achieve the same resolution as would be achieved with the inverse transform itself (ie the "test-box") as the test-cell. To minimise the degree of mis-match between the test-box and the test-cell used, a test cell should be chosen which has a functional definition which is easy to process, but nevertheless approximates the shape and size of the test-box.
The actual information stored in the results storage 70 by the control logic 58 will be dependent on the task to be performed.
If a mass calculation is being performedt the mass could simply be accumulated as a sum of the number of full cells detected, with partly full cells, corresponding to sub-boxes of the "desired resolution", ; being recorded as half-full.
If, for example, a 2-D image of the complex object is being generated, a pixel map of the image can be built up in the results storage.
~5 Conveniently a rectangular box can be arranged with respect to the intended viewing (or projection) point such that one of its axes is parallel to the viewing direction, and the sub-division processes is arranged to examine rows of sub-boxes parallel to that viewing direction in making up the image. The front surface of the box, that is the surface nearest to the viewing, or projection point for the image can then form the viewing plane for that image. Each pixel on the image can then be arranged to correspond to a row of sub-boxes having a frontal area corresponding to the size of a pixel parallel to the viewing direction. This arrangement is not, however, essential, and other shapes and orientations of box are possible, particularly if it is desired to generate unusual views (distortions, stereo views etc) of the object. The control logic will be arranged to cause sub-boxes which are ~ nearer to the front of the object, as seen in the intended image, (ie ; nearest to the viewing plane) to be processed before those further away, so that the Eront surfaces of the object may be determined. Thus, a sub-box need not be considered if the settings for the corresponding : ;
',~
~28S6~V
pixels have already been determined. The control program maintains a record of the progress of the sub-division process. This record could be in the form of a tree-structured record, a bit-map or any other suitable form.
S When the front surface of the object has been detected, the required colour and/or intensity of the pixel concerned can be determined using, for example, a ray-tracing technique. The vector represénting the normal to the surface of a pr:imitive in any test-cell can be computed from the functional definition of that primitive. By transforming this ' lO normal vector into world space using the transforms identified in the object definition structure for that primitive and by comparing the transformed vector against one or more vectors representing ~ -' light-sources, the colour and or intensity of the pixel corresponding to that test-cell can be determined.
lS In order to generate the image of a transform of the object (eg a two dimensional perspective view) it is merely necessary to incorporate an additional transform definition appropriate for the required transformation at the root of the structure defining the object and to _ consider the transform (eg perspective) viewing space as "world space"
for the purpose of generating the image. In this way distortions of the image can be simulated and or specialised view of the object (eg as through a fish-eye lens) can be produced.
For ease of illustration only relatively simple transforms and objects have been illustrated. However, it should be understood that the present invention allows objects and transforms of high complexity to be treated. Complex objects generated in accordance with the present invention from a simpler object may be combined and or intersected with other objects in the same way as would a simple object.
In the general case, the sub-boxes which are generated from the sub-division of the box which represents world space are tested for . :
,. .. ~.
, ~z~
intersection against the primitives of the object by, for each sub-box and primitive being tested for intersection, traversing the structure defining the object to the functional definition of that primitive to determine whether any transform operators are to be applied thereto and, if so, generating a test-cell in primitive space from the sub-box using the inverse of the or each transform so identified, and comparing the functional definitions of the test-cell and the primitive in primitive space to determine whether the sub-box has a correspondiny test-cell which intersects the primitive.
It will be appreciated that the processing of a complex composite object involves a very large number of individual operations. However, as the individual operations involved are relatively simple, the present invention provides an efficient approach to the modelling of complex composite objects.
' ~ ' : ~ , ,,
,,~
'.
128~;660 U~9-86-017 10 ., ~
EMPTY UNION expression2 -> expression2 expressionl UNION EMPTY -> expressionl FULL UNION expression2 -> FULL
expressionl UNION FULL -> FULL
and EMPTY INTE~SECT expression 2 -> EMPTY
expressionl INTERSECT empty -> EMPTY
FULL INTERSECT expression2 -> expression2 expressionl INTERSECT FULL -> expressionl , . :
If the result of this simplification is EMPTY, the object has no inside within the region under consideration. If a picture is being drawn, this region will make no contribution to the screen image. If mass properties are being computed, the region will make no contribution to the volume or moment.
If the result of the simplification is FULL, the region is completely occupied by the object. Normally, when constructing a picture from one view, this region will not contribute to the image as it does not contain a surface Eacing the viewer, and the inside of an object is hidden by its surfaces. For mass properties however, the entire region will contribute to the volume or moment being computed.
.
Normally, the expression will contain at least one term. In some circumstances, the expression will be sufficiently simple to be treated ; directly. For instance it may be a single planar half-space. The contribution to the picture or mass property of the total object can be computed directly. In order to proceed in other cases, the region of space is divided into smaller regions. Most simply, it could be divided in half perpendicular to its longest dimension. Figure lC shows the division of the rectangular box-shaped region of space into 8 sub-boxes 31, 32, 33, 34, 35, 36, 37, 38. The simplification process is then repeated on these two new regions until expressions such as FULL, EMPTY
or other simple cases are obtained.
~ .
S~
Eventually, some lower limit on the size of regions is reached and still some regions contain non-simple expressions. When drawing a picture, a eonvenient stopping point is when regions have a frontal area which is smaller than or equal to that of a pixel. At this stage, regions which eontain a single object will contain a pixel-sized surface of the objeet. Regions containing two objects will contain an edge where the two surfaees meet and regions eontaining three objects will normally contain a vertex.
The action depends on the calculation being performed. When drawing a picture, the surface or edge is drawn. For a surface, the surface normal is computed at the centre of the region of space and this is used, in conjunction with the known positions of light sources to compute the amount of light reflected from that point toward the viewer.
For a more complex edge or vertex region, a ray-tracing method can be used to isolate one visible surface to be treated in this way. When computing mass properties, the cell can simply be assumed to be ; half-full.
However, as has already been mentioned, although this approach works in theory, lt is impractical for a large set of objects and/or transformations where the complexity of the transformed functional definitions is to high. Thus, this approach would not be practieal where the component parts of the objects eannot be defined by simple graphics primitives.
The present invention enables eomplex objeets to be defined, whieh ean be deseribed by performing transforms on simple primitives ana by eomhining the transforms and primitives. In praetice, the resulting definitions would be too complex to be handled directly so, instead of ` ; transforming the component primitives of the object, space is transformed instead. The functional representation of box, say a ; rectangular box, is established which defines the space (world space) in which the object is to be defined. However, rather than transforming .. . .
. .
~s~
U~9-86-017 12 the simple primitives from their original coordinate system into world space (which is the principle of Barr's technique~, the rectangular box is instead transformed ~hrough the inverse o~ the transformation which would conventionally have been performed on the object primitives.
Thus, the rectangular box is subjected to the sub-division algorithm discussed above, but with the inverse transforms of the sub-boxes created being tested for intersection with the primitives in their original co-ordinate systems, and the need to transform the primitives themselves can be eliminated.
For example, to scale a primitive up by factors of, say, sx,sy and sz along the coordinate axes, the region of world space under consideration (ie a region of the space within which the object comprising the scaled down up primitive exists is transformed down by these factors and this scaled down region is compared in the "object" space in which the primitive was originally defined with the unscaled primitive. The results are the same as testing the scaled up primitive in world space against the unscaled region of that world space.
.
For transforms such as scaling and translation, the scaled region .. . . . . . . = . ~
remains a rectangular box to the axes after transformatlon. For rotation, the space rem~ins rectangular but is no longer parallel to the axes. For trans~ormations such as bending or twisting, the space becomes bent or twisted in the reverse direction and is no longer simply rectangular. It is necessary to test the object against this new, transformed, space. Figures 2A to 2D illustrate an example of this for the dumb-bell discussed earlier, but where the bar of the dumb-bell is bent.
The sub-division algorithm is not affected in any material way if the region of space considered is larger by some factor than it should be.
All that will happen is that the expression resulting from the simplification will sometimes contain terms which, ~trictly speaking, could be eliminated. Provided the error is reduced as the regions under _ . , )~ : . . .. ... . ... ..
~ 28~;6~
consideration get smaller, these r~dundant terms will be eliminated later in the evaluation. Efficiency will be reduced and it may be necessary to continue evaluation to a smaller minimum region-size but the sub-division algorithm continues to operate correctly.
The principles of the present invention will now be discussed in more detail with reference to Figures 2A and 2D and Figure 3.
Figure 3 shows the functional organisation of part of a solid modelling system such as a yraphics processing systemO
These functional elements could be implemented by suitably programming a conventional programmable graphics processing system. Alternatively, the functional units shown in the figure could be provided as separate hardwired circuits in a graphics processing system. Conventionally, a graphics processing system will comprise storage and processing means, and means for the input of data (eg a keyboard) and for the output of lS data (es a cathode ray tube display device). The functional elements shown could, alternatively form part of the control mechanism of a robot.
Figure 2A shows a dumb-bell 10' similar to that shown in Figure lA, but with a bent bar.
Mathematically the definition of this dumb-bell can be represented as Dumb-bell 10' = ~tl,A)~(t2B)~(t3(C+D+E)) where "*" is the mathematical union operator, "~" is the mathematical intersect operator, A, B, C, D and E are the mathematical expressionS
Por the sphere A of Figure lA centred at the point 'a', the sphere B of Figure lA centred at the point 'b', the infinite cylinder C, the half-space D to the right of the line 12 and the half-space E to the left of the line 14 and wherein t1 and t2 are translation operators and t3 is a bending operator.
, ~2~
In accordance with the principIes of the present invention the primitive and the combinational operator definitions are included in a structure defining the obiect. This structure could take the form of a tree-shaped structure such as is shown in Figure 2B. One practical implementation of this structure could take the form of a linked--list structure with different storage element types in the structure identifying whether an element defines primitive, a combinationaI
operator or a transform operator. Object definition storage 72 is provided for the structure forming the object definitionO In the following it is assumed that the object is defined in terms of a linked-list tree structure.
World space definition storage 54 is also provided for a functional definition of the box representing world space. Usually the box will be rectangular. It could however take any other suitable shape, eg that of a cylinder. The functional definition could also take any suitable form. One possibility would be a tree structure in the form of a linked list. The definition of a rectangular box could then take the fo~n of the intersection of six planar half-spaces. Another p~ossibility, for a cube, would be to identify the centre of the cube and the vector from that centre to one corner of the cube. In the following it is assumed that the test-box is rectangular.
The control logic 58 causes the box/sub-box definition logic 60 to select the rectangular box for comparison against the object. The transform determination and object simplification logic 68 is used to generate a simplified functional definition in the case where the object to be transformed is formed from a plurality of primitives. After one or more sub-divisions of the rectangular box, the output of the comparison logic may show that the test-cell does not intersect one or more of the primitives in the object. In this case, on ~urther sub-divisions of that region of the rectangular box, the functional definitions of these primitives need not be compared against the test-cells for that sub-divided region. The object simplification logic .
~ 2~
..
selects those parts of the functional definition of the whole ob~ect ; which are relevant at any stage dependent on the results of previous comparison operations. Then the object simplification logic 68 is caused to select the primitives for comparison against the transforms of the box or sub-box currently selected. For each primitive so selected the transform determination and object simplification logic also identifies the transform operation~s) which would be needed to transform that primitive into world space to create the object. The inverse of each of the transforms so indicated is then identified in the transform operator storage 56.
The box or sub-box currently selected is then subjected to the or each inverse transform operator in the inverse transform processing logic 62 and a test box is generated. The resulting test-box can then either be passed by the test-cell generation logic 64 directly to the comparison logic 66 as the test-cell, or, as will be described later, a simplified test-cell can be generated from the inverse transform of the rectangular box (or sub-box) by that logic 64 and this passed to the comparison logic 66.
~ .
The object and the test-cell functional definitions are tested for intersection by being compared in the comparison logic 66 and an essentially three-valued ~oolean comparison output is generated as de~scribed earlier - ie FULL, EMPTY or partly filled. ~he output of the comparison logia is passed to the control loglc 58 and to the transform determination and object simplification logic 68.
~ 25 The control logic reacts in one of a number of ways dependent on the ; ~ xesult of the comparison for each test-cell and primitive:
, ; 1) In the case where an intersection is detected and the box or sub-box under consideration is larger than a desired resolution, then the control logic causes the box/sub-box subdivision logic to i~ 30 divide the box or sub-box under consideration into a number of , smaller sub-boxes for evaluation in ord~r in the next stage.
,~ Figure 2C shows the sub-division by eight, although another factor, ~ eg 2, could be chosen.
,, : , ~28~
ii) In the case where an intersection is detected and the size of the box or sub-box under consideration corresponds to the desired resolution, then this fact is stored in the result storage 70.
iii) If there is no intersection, then examination of the box or sub-box under consideration is terminated and this fact is recorded.
Figures 2C and 2D illustrate the principles of the present invention.
Instead of transforming the component primitives teg the cylinder C and the two half-spaces D and E) into world space as is illustrated in dotted lines in Figure 2C, the functional definitions of the component primitives are retained in their original co-ordinate systems and space is transformed instead. Thus a region of space 39 in world space is transformed using the inverse of the bending transform t3 identified in the tree structure shown in Figure 2B to generate a test-cell 38' in the co-ordinate system of the cylinder C for comparison against that cylinder. For comparison of a region of world space against the sphere A or B a different transform (tl or t2 respectively) would be performed on the space because these spheres have merely been displaced (from a to a' or from b to b' respectively) for the dumb-bell lO',and not bent.
The test-cells can be formed by the functional definitions of the inverse transforms of the sub-boxes. This is not, however, essential.
The inverse transform of a sub-box could instead be replaced by a simple 3-D volume centred on and circumscribing that inverse transform.
By a simple 3-D volume is meant a volume such as a sphere, rectangular boxes or an ellipsoid which is relatively easy to define and to process.
This is because any part of the object which intersects the inverse transform of the suh-box will also intersect the circumscribing sphere or rectangular box or ellipsoid centred on that transform. If a simplified test-cell is used - this would be generated by the test-cell generation logic 44 - the effect on the method woul~ only be that it may be necessary to introduce a further stage of sub-division in order to _.
356~q~
achieve the same resolution as would be achieved with the inverse transform itself (ie the "test-box") as the test-cell. To minimise the degree of mis-match between the test-box and the test-cell used, a test cell should be chosen which has a functional definition which is easy to process, but nevertheless approximates the shape and size of the test-box.
The actual information stored in the results storage 70 by the control logic 58 will be dependent on the task to be performed.
If a mass calculation is being performedt the mass could simply be accumulated as a sum of the number of full cells detected, with partly full cells, corresponding to sub-boxes of the "desired resolution", ; being recorded as half-full.
If, for example, a 2-D image of the complex object is being generated, a pixel map of the image can be built up in the results storage.
~5 Conveniently a rectangular box can be arranged with respect to the intended viewing (or projection) point such that one of its axes is parallel to the viewing direction, and the sub-division processes is arranged to examine rows of sub-boxes parallel to that viewing direction in making up the image. The front surface of the box, that is the surface nearest to the viewing, or projection point for the image can then form the viewing plane for that image. Each pixel on the image can then be arranged to correspond to a row of sub-boxes having a frontal area corresponding to the size of a pixel parallel to the viewing direction. This arrangement is not, however, essential, and other shapes and orientations of box are possible, particularly if it is desired to generate unusual views (distortions, stereo views etc) of the object. The control logic will be arranged to cause sub-boxes which are ~ nearer to the front of the object, as seen in the intended image, (ie ; nearest to the viewing plane) to be processed before those further away, so that the Eront surfaces of the object may be determined. Thus, a sub-box need not be considered if the settings for the corresponding : ;
',~
~28S6~V
pixels have already been determined. The control program maintains a record of the progress of the sub-division process. This record could be in the form of a tree-structured record, a bit-map or any other suitable form.
S When the front surface of the object has been detected, the required colour and/or intensity of the pixel concerned can be determined using, for example, a ray-tracing technique. The vector represénting the normal to the surface of a pr:imitive in any test-cell can be computed from the functional definition of that primitive. By transforming this ' lO normal vector into world space using the transforms identified in the object definition structure for that primitive and by comparing the transformed vector against one or more vectors representing ~ -' light-sources, the colour and or intensity of the pixel corresponding to that test-cell can be determined.
lS In order to generate the image of a transform of the object (eg a two dimensional perspective view) it is merely necessary to incorporate an additional transform definition appropriate for the required transformation at the root of the structure defining the object and to _ consider the transform (eg perspective) viewing space as "world space"
for the purpose of generating the image. In this way distortions of the image can be simulated and or specialised view of the object (eg as through a fish-eye lens) can be produced.
For ease of illustration only relatively simple transforms and objects have been illustrated. However, it should be understood that the present invention allows objects and transforms of high complexity to be treated. Complex objects generated in accordance with the present invention from a simpler object may be combined and or intersected with other objects in the same way as would a simple object.
In the general case, the sub-boxes which are generated from the sub-division of the box which represents world space are tested for . :
,. .. ~.
, ~z~
intersection against the primitives of the object by, for each sub-box and primitive being tested for intersection, traversing the structure defining the object to the functional definition of that primitive to determine whether any transform operators are to be applied thereto and, if so, generating a test-cell in primitive space from the sub-box using the inverse of the or each transform so identified, and comparing the functional definitions of the test-cell and the primitive in primitive space to determine whether the sub-box has a correspondiny test-cell which intersects the primitive.
It will be appreciated that the processing of a complex composite object involves a very large number of individual operations. However, as the individual operations involved are relatively simple, the present invention provides an efficient approach to the modelling of complex composite objects.
' ~ ' : ~ , ,,
Claims (10)
1. A method of generating a spatial representation of a three-dimensional solid object in a system comprising storage and processing means, the method comprising:
(a) the initial step of establishing in storage - a structure (20) for defining the object, the structure including the functional definitions of at least one primitive and at least one transform operator (22); and - a functional definition of a three-dimensional box (14) defining world space;
(b) followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least a desired resolution and - for at least one primitive in the structure, traversing the structure to identify whether any transform operators are to be applied to the primitive as defined by the structure, and, if so, generating test-cells in primitive space from the sub-boxes using the inverse of the or each transform operator so identified and determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not, whereby a spatial representation of the object may be generated without performing transform operations on the object or the component primitives thereof.
(a) the initial step of establishing in storage - a structure (20) for defining the object, the structure including the functional definitions of at least one primitive and at least one transform operator (22); and - a functional definition of a three-dimensional box (14) defining world space;
(b) followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least a desired resolution and - for at least one primitive in the structure, traversing the structure to identify whether any transform operators are to be applied to the primitive as defined by the structure, and, if so, generating test-cells in primitive space from the sub-boxes using the inverse of the or each transform operator so identified and determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not, whereby a spatial representation of the object may be generated without performing transform operations on the object or the component primitives thereof.
2. A method according to claim 1, wherein the structure is a tree structure with the complete solid object defined at the root node of the tree structure, primitives being defined at leaf nodes and sub-objects being defined at intermediate nodes in the tree structure and wherein transform operators and combinational functions are defined at appropriate nodes for identifying how the sub-ordinate primitives and/or sub-objects are to be combined to form the object or sub-objects at the nodes of the tree.
3. A method according to claim 1 wherein the spatial representation of the three-dimensional solid object is a two-dimensional image of that object as viewed in a viewing direction from a viewing point, said image being made up of an array of image pixels and wherein the step of determining whether sub-boxes having at least the desired resolution have corresponding test-cells which intersect the primitive or not comprises the step of determining, for each row of sub-boxes having a frontal area corresponding to at least a desired resolution said rows extending in the box parallel to the viewing direction and being associated with corresponding pixels in the array forming the image, which is the sub-box, if any, nearest in that row to the viewing point whose corresponding test-cell intersects the object;
and wherein the method additionally comprises the step of:
storing the setting of the colour and/or intensity for the pixel associated with respective rows appropriate to the result of the determination of the nearest sub-box for each row, whereby a two-dimensional image of a solid object may be generated without transforming the component primitives of the object.
and wherein the method additionally comprises the step of:
storing the setting of the colour and/or intensity for the pixel associated with respective rows appropriate to the result of the determination of the nearest sub-box for each row, whereby a two-dimensional image of a solid object may be generated without transforming the component primitives of the object.
4. A method according to claim 3 wherein the desired resolution is the pixel resolution of the image.
5. A method according to claim 3 wherein steps (b) are recursive steps forming a plurality of stages such that, at each stage, the test-cell corresponding to the sub-box under consideration is tested for intersection and, for the case where an intersection is detected, the sub-division processes is terminated for that sub-box if its size corresponds to at least the desired resolution, otherwise the sub-box is further divided into smaller sub-boxes which are considered in turn in the next stage, whereas in the case where no intersection is detected, the sub-division process is terminated for the sub-box under consideration irrespective of its size.
6. A method according to claim 5 wherein sub-boxes nearer to the first surface of the box are considered before those further away, whereby a sub-box need not be processed where the settings for the corresponding pixels have already been determined.
7. A method according to claim 1 wherein the step of generating a test-cell comprises the step of determining a predetermined point of the transform of the box or sub-box under consideration and defining a simple 3-D volume in primitive space about said point which fully contains the transform of the box or sub-box, said volume then forming the test-cell for the box or sub-box under consideration.
8. A method according to claim 3 wherein the step of storing an indication of the colour/and or intensity for the pixel associated with each row comprises the steps of transforming a vector representing a normal to the surface of a primitive within a test cell into world space and comparing the transformed surface normal vector with at least one vector representing a light source.
9. A method of generating a spatial representation of a three-dimensional solid object in a system comprising storage and processing means, the method comprising:
(a) the initial step of establishing in storage - a structure (20) for defining the object, the structure including the functional definitions of a plurality of primitives and a plurality of transform operators (22); and - a functional definition of a three-dimensional box (14) defining world space;
(b) followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least a desired resolution and - for a given sub-box and a given primitive in the structure traversing the structure to that primitive to identify whether any transform operators are to be applied thereto as defined by the structure, and, if so, generating a test-cell in primitive space from the given sub-box using the inverse of each transform operator so identified and determining whether the sub-box has a corresponding test-cell which intersects the primitive, whereby a spatial representation of the object may be generated without performing transform operations on the object or the component primitives thereof.
(a) the initial step of establishing in storage - a structure (20) for defining the object, the structure including the functional definitions of a plurality of primitives and a plurality of transform operators (22); and - a functional definition of a three-dimensional box (14) defining world space;
(b) followed by the step of - subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least a desired resolution and - for a given sub-box and a given primitive in the structure traversing the structure to that primitive to identify whether any transform operators are to be applied thereto as defined by the structure, and, if so, generating a test-cell in primitive space from the given sub-box using the inverse of each transform operator so identified and determining whether the sub-box has a corresponding test-cell which intersects the primitive, whereby a spatial representation of the object may be generated without performing transform operations on the object or the component primitives thereof.
10. A solid modelling system comprising means for generating a spatial representation of a three-dimensional solid object, said means for generating a functional representation of the transform of the object including:
- object definition means (52) for storing a structure defining the object, the structure including at least one primitive and at least one transform operator;
- world space definition means (54) for storing a functional definition of a three-dimensional box (30) defining world space;
and - processing means (58, 60, 62, 64, 66, 68) - for subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least a desired resolution, and - for at least one primitive in the structure, for traversing the structure to determine whether any transform operators are to be applied to the primitive as defined by the structure and, if so, for generating test-cells in primitive space from sub-boxes using the inverse of each transform operator so identified, and for determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not.
- object definition means (52) for storing a structure defining the object, the structure including at least one primitive and at least one transform operator;
- world space definition means (54) for storing a functional definition of a three-dimensional box (30) defining world space;
and - processing means (58, 60, 62, 64, 66, 68) - for subdividing the box in world space into progressively smaller sub-boxes until sub-boxes are created whose size corresponds to at least a desired resolution, and - for at least one primitive in the structure, for traversing the structure to determine whether any transform operators are to be applied to the primitive as defined by the structure and, if so, for generating test-cells in primitive space from sub-boxes using the inverse of each transform operator so identified, and for determining whether sub-boxes having the desired resolution have corresponding test-cells which intersect the primitive, or not.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8621257A GB2194656B (en) | 1986-09-03 | 1986-09-03 | Method and system for solid modelling |
GB8621257 | 1986-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1285660C true CA1285660C (en) | 1991-07-02 |
Family
ID=10603624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000545963A Expired - Fee Related CA1285660C (en) | 1986-09-03 | 1987-09-02 | Method and system for solid modelling |
Country Status (8)
Country | Link |
---|---|
US (1) | US4858149A (en) |
EP (1) | EP0262304B1 (en) |
JP (1) | JPS6365576A (en) |
AU (1) | AU600515B2 (en) |
BR (1) | BR8703887A (en) |
CA (1) | CA1285660C (en) |
DE (1) | DE3789650T2 (en) |
GB (1) | GB2194656B (en) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5003498A (en) * | 1986-01-13 | 1991-03-26 | Hitachi, Ltd. | Graphic display method |
US5283859A (en) * | 1986-09-03 | 1994-02-01 | International Business Machines Corporation | Method of and system for generating images of object transforms |
GB2194715B (en) * | 1986-09-03 | 1991-02-13 | Ibm | Method of and system for generating images of object transforms |
GB2214037A (en) * | 1987-12-18 | 1989-08-23 | Ibm | Solid modelling system |
JPH01175671A (en) * | 1987-12-29 | 1989-07-12 | Nippon Steel Corp | Method for converting drawing data |
US5278983A (en) * | 1988-09-30 | 1994-01-11 | International Business Machines Corporation | Boundary representation solid modeling system |
US5261032A (en) * | 1988-10-03 | 1993-11-09 | Robert Rocchetti | Method for manipulation rectilinearly defined segmnts to form image shapes |
FR2638875B1 (en) * | 1988-11-04 | 1990-12-14 | Gen Electric Cgr | METHOD FOR SELECTING AN OBJECT FROM A N-DIMENSIONAL REFERENCE BASE AND VIEWING THE SELECTED OBJECT |
US5079545A (en) * | 1989-01-13 | 1992-01-07 | Sun Microsystems, Inc. | Apparatus and method for processing graphical information to minimize page crossings and eliminate processing of information outside a predetermined clip window |
US5027292A (en) * | 1989-04-19 | 1991-06-25 | International Business Machines Corporation | Multiple depth buffers for graphics and solid modelling |
US5113357A (en) * | 1989-05-18 | 1992-05-12 | Sun Microsystems, Inc. | Method and apparatus for rendering of geometric volumes |
GB2231759B (en) * | 1989-05-18 | 1993-12-08 | Sun Microsystems Inc | Method and apparatus for the rendering of geometric volumes |
JP3245655B2 (en) * | 1990-03-05 | 2002-01-15 | インキサイト ソフトウェア インコーポレイテッド | Workspace display processing method |
EP0447629A3 (en) * | 1990-03-19 | 1993-01-13 | International Business Machines Corporation | A compliant sectioning facility for interactive sectioning of solid geometric objects using a graphics processor |
US5086401A (en) * | 1990-05-11 | 1992-02-04 | International Business Machines Corporation | Image-directed robotic system for precise robotic surgery including redundant consistency checking |
GB2253772B (en) * | 1991-03-12 | 1995-01-25 | Honda Motor Co Ltd | Method of creating solid model |
US6243131B1 (en) | 1991-05-13 | 2001-06-05 | Interactive Pictures Corporation | Method for directly scanning a rectilinear imaging element using a non-linear scan |
US5990941A (en) * | 1991-05-13 | 1999-11-23 | Interactive Pictures Corporation | Method and apparatus for the interactive display of any portion of a spherical image |
US5903319A (en) * | 1991-05-13 | 1999-05-11 | Interactive Pictures Corporation | Method for eliminating temporal and spacial distortion from interlaced video signals |
US5384588A (en) * | 1991-05-13 | 1995-01-24 | Telerobotics International, Inc. | System for omindirectional image viewing at a remote location without the transmission of control signals to select viewing parameters |
US7714936B1 (en) | 1991-05-13 | 2010-05-11 | Sony Corporation | Omniview motionless camera orientation system |
US7382399B1 (en) | 1991-05-13 | 2008-06-03 | Sony Coporation | Omniview motionless camera orientation system |
US6201574B1 (en) | 1991-05-13 | 2001-03-13 | Interactive Pictures Corporation | Motionless camera orientation system distortion correcting sensing element |
US6002430A (en) * | 1994-01-31 | 1999-12-14 | Interactive Pictures Corporation | Method and apparatus for simultaneous capture of a spherical image |
GB2270243B (en) * | 1992-08-26 | 1996-02-28 | Namco Ltd | Image synthesizing system |
GB2271260A (en) * | 1992-10-02 | 1994-04-06 | Canon Res Ct Europe Ltd | Processing image data |
US5684937A (en) | 1992-12-14 | 1997-11-04 | Oxaal; Ford | Method and apparatus for performing perspective transformation on visible stimuli |
US6731284B1 (en) | 1992-12-14 | 2004-05-04 | Ford Oxaal | Method of and apparatus for performing perspective transformation of visible stimuli |
GB9316214D0 (en) * | 1993-08-05 | 1993-09-22 | Philips Electronics Uk Ltd | Image processing |
JP3313221B2 (en) * | 1993-12-28 | 2002-08-12 | 松下電器産業株式会社 | Image generation method and image generation device |
US5734805A (en) * | 1994-06-17 | 1998-03-31 | International Business Machines Corporation | Apparatus and method for controlling navigation in 3-D space |
US5546529A (en) * | 1994-07-28 | 1996-08-13 | Xerox Corporation | Method and apparatus for visualization of database search results |
EP0694878B1 (en) * | 1994-07-28 | 2005-07-27 | Xerox Corporation | A method and apparatus for increasing the displayed detail of a tree structure |
US6327381B1 (en) | 1994-12-29 | 2001-12-04 | Worldscape, Llc | Image transformation and synthesis methods |
US5703961A (en) * | 1994-12-29 | 1997-12-30 | Worldscape L.L.C. | Image transformation and synthesis methods |
US6373642B1 (en) | 1996-06-24 | 2002-04-16 | Be Here Corporation | Panoramic imaging arrangement |
US6493032B1 (en) | 1996-06-24 | 2002-12-10 | Be Here Corporation | Imaging arrangement which allows for capturing an image of a view at different resolutions |
US6459451B2 (en) | 1996-06-24 | 2002-10-01 | Be Here Corporation | Method and apparatus for a panoramic camera to capture a 360 degree image |
US6341044B1 (en) | 1996-06-24 | 2002-01-22 | Be Here Corporation | Panoramic imaging arrangement |
US6331869B1 (en) | 1998-08-07 | 2001-12-18 | Be Here Corporation | Method and apparatus for electronically distributing motion panoramic images |
US5905657A (en) | 1996-12-19 | 1999-05-18 | Schlumberger Technology Corporation | Performing geoscience interpretation with simulated data |
US6128577A (en) * | 1996-12-19 | 2000-10-03 | Schlumberger Technology Corporation | Modeling geological structures and properties |
US6052650A (en) * | 1997-02-27 | 2000-04-18 | Schlumberger Technology Corporation | Enforcing consistency in geoscience models |
US6466254B1 (en) | 1997-05-08 | 2002-10-15 | Be Here Corporation | Method and apparatus for electronically distributing motion panoramic images |
US6356296B1 (en) | 1997-05-08 | 2002-03-12 | Behere Corporation | Method and apparatus for implementing a panoptic camera system |
US6333749B1 (en) * | 1998-04-17 | 2001-12-25 | Adobe Systems, Inc. | Method and apparatus for image assisted modeling of three-dimensional scenes |
JP3612422B2 (en) * | 1998-06-01 | 2005-01-19 | 株式会社アマダ | Computer-readable recording medium recording a sheet metal figure creation program |
US6924832B1 (en) | 1998-08-07 | 2005-08-02 | Be Here Corporation | Method, apparatus & computer program product for tracking objects in a warped video image |
US6313837B1 (en) | 1998-09-29 | 2001-11-06 | Schlumberger Technology Corporation | Modeling at more than one level of resolution |
US6369818B1 (en) | 1998-11-25 | 2002-04-09 | Be Here Corporation | Method, apparatus and computer program product for generating perspective corrected data from warped information |
US6799065B1 (en) * | 1998-12-08 | 2004-09-28 | Intuitive Surgical, Inc. | Image shifting apparatus and method for a telerobotic system |
US6522906B1 (en) * | 1998-12-08 | 2003-02-18 | Intuitive Surgical, Inc. | Devices and methods for presenting and regulating auxiliary information on an image display of a telesurgical system to assist an operator in performing a surgical procedure |
US6175454B1 (en) | 1999-01-13 | 2001-01-16 | Behere Corporation | Panoramic imaging arrangement |
US8944070B2 (en) | 1999-04-07 | 2015-02-03 | Intuitive Surgical Operations, Inc. | Non-force reflecting method for providing tool force information to a user of a telesurgical system |
US7412091B2 (en) * | 2000-12-07 | 2008-08-12 | Ilookabout Inc. | System and method for registration of cubic fisheye hemispherical images |
US7239345B1 (en) | 2001-10-12 | 2007-07-03 | Worldscape, Inc. | Camera arrangements with backlighting detection and methods of using same |
US7031790B2 (en) * | 2002-09-23 | 2006-04-18 | Autodesk, Inc. | Operator for sculpting solids with sheet bodies |
US7457444B2 (en) * | 2003-05-14 | 2008-11-25 | Siemens Medical Solutions Usa, Inc. | Method and apparatus for fast automatic centerline extraction for virtual endoscopy |
US7804500B2 (en) * | 2004-07-26 | 2010-09-28 | Che-Chih Tsao | Methods of displaying volumetric 3D images |
US7880737B2 (en) * | 2005-03-22 | 2011-02-01 | Vijayvardhan Elchuri | Graphical method and system for making drawings directly in three-dimensions on a computer monitor or other display device |
US9789608B2 (en) | 2006-06-29 | 2017-10-17 | Intuitive Surgical Operations, Inc. | Synthetic representation of a surgical robot |
US8182415B2 (en) | 2006-06-13 | 2012-05-22 | Intuitive Surgical Operations, Inc. | Minimally invasive surgical system |
US10258425B2 (en) | 2008-06-27 | 2019-04-16 | Intuitive Surgical Operations, Inc. | Medical robotic system providing an auxiliary view of articulatable instruments extending out of a distal end of an entry guide |
US20090192523A1 (en) | 2006-06-29 | 2009-07-30 | Intuitive Surgical, Inc. | Synthetic representation of a surgical instrument |
US10008017B2 (en) | 2006-06-29 | 2018-06-26 | Intuitive Surgical Operations, Inc. | Rendering tool information as graphic overlays on displayed images of tools |
US9718190B2 (en) | 2006-06-29 | 2017-08-01 | Intuitive Surgical Operations, Inc. | Tool position and identification indicator displayed in a boundary area of a computer display screen |
US9084623B2 (en) | 2009-08-15 | 2015-07-21 | Intuitive Surgical Operations, Inc. | Controller assisted reconfiguration of an articulated instrument during movement into and out of an entry guide |
US9469034B2 (en) | 2007-06-13 | 2016-10-18 | Intuitive Surgical Operations, Inc. | Method and system for switching modes of a robotic system |
US9089256B2 (en) | 2008-06-27 | 2015-07-28 | Intuitive Surgical Operations, Inc. | Medical robotic system providing an auxiliary view including range of motion limitations for articulatable instruments extending out of a distal end of an entry guide |
US9138129B2 (en) | 2007-06-13 | 2015-09-22 | Intuitive Surgical Operations, Inc. | Method and system for moving a plurality of articulated instruments in tandem back towards an entry guide |
US8620473B2 (en) | 2007-06-13 | 2013-12-31 | Intuitive Surgical Operations, Inc. | Medical robotic system with coupled control modes |
US8864652B2 (en) | 2008-06-27 | 2014-10-21 | Intuitive Surgical Operations, Inc. | Medical robotic system providing computer generated auxiliary views of a camera instrument for controlling the positioning and orienting of its tip |
US8918211B2 (en) | 2010-02-12 | 2014-12-23 | Intuitive Surgical Operations, Inc. | Medical robotic system providing sensory feedback indicating a difference between a commanded state and a preferred pose of an articulated instrument |
US9492927B2 (en) | 2009-08-15 | 2016-11-15 | Intuitive Surgical Operations, Inc. | Application of force feedback on an input device to urge its operator to command an articulated instrument to a preferred pose |
US10507066B2 (en) | 2013-02-15 | 2019-12-17 | Intuitive Surgical Operations, Inc. | Providing information of tools by filtering image areas adjacent to or on displayed images of the tools |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3194948A (en) * | 1958-08-07 | 1965-07-13 | Itt | Velocity and position computer |
FR1494849A (en) * | 1966-07-21 | 1967-09-15 | Renault | Method of generating a curve applicable to scribing or machining machines |
US4396988A (en) * | 1980-12-31 | 1983-08-02 | International Business Machines Corporation | Method and apparatus for automatically determining the X-Y intersection of two curves in a raster type display system including a buffer refresh memory |
ATE45258T1 (en) * | 1981-04-10 | 1989-08-15 | Ampex | DEVICE FOR SPATIAL TRANSFORMATION OF IMAGES. |
US4463372A (en) * | 1982-03-24 | 1984-07-31 | Ampex Corporation | Spatial transformation system including key signal generator |
US4615013A (en) * | 1983-08-02 | 1986-09-30 | The Singer Company | Method and apparatus for texture generation |
US4694404A (en) * | 1984-01-12 | 1987-09-15 | Key Bank N.A. | High-speed image generation of complex solid objects using octree encoding |
US4608653A (en) * | 1984-03-30 | 1986-08-26 | Ryozo Setoguchi | Form creating system |
US4625289A (en) * | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
US4737921A (en) * | 1985-06-03 | 1988-04-12 | Dynamic Digital Displays, Inc. | Three dimensional medical image display system |
US4897806A (en) * | 1985-06-19 | 1990-01-30 | Pixar | Pseudo-random point sampling techniques in computer graphics |
GB2194715B (en) * | 1986-09-03 | 1991-02-13 | Ibm | Method of and system for generating images of object transforms |
-
1986
- 1986-09-03 GB GB8621257A patent/GB2194656B/en not_active Expired - Fee Related
-
1987
- 1987-06-16 DE DE3789650T patent/DE3789650T2/en not_active Expired - Fee Related
- 1987-06-16 EP EP87108647A patent/EP0262304B1/en not_active Expired - Lifetime
- 1987-07-20 JP JP62179274A patent/JPS6365576A/en active Granted
- 1987-07-27 BR BR8703887A patent/BR8703887A/en not_active IP Right Cessation
- 1987-08-18 US US07/086,763 patent/US4858149A/en not_active Expired - Lifetime
- 1987-09-02 CA CA000545963A patent/CA1285660C/en not_active Expired - Fee Related
- 1987-09-03 AU AU77796/87A patent/AU600515B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
GB2194656A (en) | 1988-03-09 |
AU600515B2 (en) | 1990-08-16 |
JPH0564831B2 (en) | 1993-09-16 |
US4858149A (en) | 1989-08-15 |
EP0262304A2 (en) | 1988-04-06 |
BR8703887A (en) | 1988-03-29 |
DE3789650D1 (en) | 1994-05-26 |
GB2194656B (en) | 1991-10-09 |
EP0262304B1 (en) | 1994-04-20 |
AU7779687A (en) | 1988-03-10 |
EP0262304A3 (en) | 1990-09-12 |
JPS6365576A (en) | 1988-03-24 |
DE3789650T2 (en) | 1994-11-17 |
GB8621257D0 (en) | 1986-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1285660C (en) | Method and system for solid modelling | |
Ronfard et al. | Full‐range approximation of triangulated polyhedra. | |
Zhang et al. | Interactive collision detection for deformable models using streaming AABBs | |
US4987554A (en) | Method of converting continuous three-dimensional geometrical representations of polygonal objects into discrete three-dimensional voxel-based representations thereof within a three-dimensional voxel-based system | |
EP1024457B1 (en) | Method for rendering graphical objects represented as surface elements | |
IX et al. | Incremental triangle voxelization | |
EP1024436B1 (en) | Method for generating graphic objects represented as surface elements | |
Woodwark et al. | Reducing the effect of complexity on volume model evaluation | |
JPH07120434B2 (en) | Method and apparatus for volume rendering | |
Fougerolle et al. | Boolean operations with implicit and parametric representation of primitives using R-functions | |
Li et al. | Voxelized Minkowski sum computation on the GPU with robust culling | |
EP1026638B1 (en) | Method for modeling graphical objects represented as surface elements | |
Li et al. | A GPU-based voxelization approach to 3D Minkowski sum computation | |
EP1024460A2 (en) | Graphical objects represented as surface elements | |
US5283859A (en) | Method of and system for generating images of object transforms | |
EP0259549B1 (en) | Method of and system for generating images of object transforms | |
Inui et al. | Fast dexelization of polyhedral models using ray-tracing cores of GPU | |
Lau et al. | Large a collision detection framework for deformable objects | |
Maghrabi et al. | Removal of hidden lines by recursive subdivision | |
Fort et al. | Computing generalized higher-order Voronoi diagrams on triangulated surfaces | |
Peng | A hybrid cubic-tetrahedral voxel modeling method for enhanced computational efficiency | |
Fossås | Voxel-Based Level-of-Detail Visualization of Isogeometric Volumes | |
Kaufman | State of the art in volume visualization | |
Davis | Bounding Sphere Images: A Parametric Bounding Volume Hierarchy for Collision Detection on the GPU. | |
Ackerman | Dissemination of medical information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKLA | Lapsed |