440 likes | 505 Views
Explore Supershapes, Superquadrics, Boolean Operations, CSG Trees, R-Functions, and more for surface reconstruction and shape recovery. Learn about advanced geometric transformations and powerful mathematical tools in 3D modeling and visualization.
E N D
Boolean Operations with Supershapes Yohan FOUGEROLLE 01-04-2004
Outline • Introduction • So what? • Conclusions and Future Work
Outline • Introduction • Surface reconstruction • Superquadrics and Supershapes • Boolean Operations and Constructive Solid Geometry (CSG) Trees • R-Functions • So what? • Conclusions and Future Work
Data Segmentation Shape recovery List of primitives Boolean Operations CSG Tree R-Functions Implicit Equation Display Surface Reconstruction : General Pipeline
Outline • Introduction • Surface reconstruction • Superquadrics and Supershapes • Boolean Operations and Constructive Solid Geometry (CSG) Trees • R-Functions • So what? • Conclusions and Future Work
Superquadrics (Superellipsoids) Extension from Superellipses to 3D Superellipsoids using spherical product (Barr 1981) SQ ={{a1,a2,a3,ε1,ε2}, {Rx,Ry,Rz,Tx,Ty,Tz}} : 11parameters
Supershapes • Introduced By Johan Gielis in April 2003 • Johan Gielis, A generic geometric transformation that unifies a wide range of natural and abstract shapes, American Journal of Botany 90(3): 333–338. 2003. • Johan Gielis, Bert Beirinckx and Edwin Bastiaens, Superquadrics with rational and irrational symmetry, in Proceedings of the eighth ACM symposium on Solid modeling and applications.
Extension to 3D Supershapes Using Spherical Product (Bourke, July 2003) 3D-SShape={{a,b,n1,n2,n3,m}, {A,B,N1,N2,N3,M}, {Rx,Ry,Rz,Tx,Ty,Tz}} 18 parameters 3D-SShape={{n1,n2,n3,m}, {N1,N2,N3,M}, {Rx,Ry,Rz,Tx,Ty,Tz,Sx,Sy,Sz}} 17 parameters
RMin Rmax n1 n2 n3 m N1 N2 N3 M Sphere 2 2 2 4 2 2 2 4 Cube 1000 1000 1000 4 1000 1000 1000 4 Bi-octo-something 1000 250 250 8 1000 250 250 8 “Flower” 3 6 2 8 4 20 10 6 Examples of 3D Supershapes
Max Min Implicit Equation F=0 Implicit equation (inside/outside function) F>0 F<0
Outline • Introduction • Surface reconstruction • Superquadrics and Supershapes • Boolean Operations and Constructive Solid Geometry (CSG) Trees • R-Functions • So what? • Conclusions and Future Work
Rappoport with 3D Solids (1997) • Wyvill and his blobtree (1998) • Biermann for subdivision surfaces (2001) • Adams with Surfels (2003) A∩B Boolean Operations • Rvachev with implicit functions (1962)
From Biermann, SIGGRAPH 2001 Boolean Operations y b -a a D1 0 x -b D2
- - u CSG Tree • Constructive solid geometry • a powerful alternative to traditional boundary representation (B-Rep) and cell decomposition • Natural “copy and paste” approach far more simpler to understand than a Boolean equation with many primitives From Shankar Krishnan International Journal of Computational Geometry & applications, Vol11, No. (2001),105-144
Outline • Introduction • Surface reconstruction • Superquadrics and Supershapes • Boolean Operations and Constructive Solid Geometry (CSG) Trees • R-Functions • So what? • Conclusions and Future Work
From Boolean Expression to R- Functions • R-functions introduced by Rvachev (1962) • Key observation : Some real valued functions of real variables have their sign completely defined by the sign of their arguments. (More generally there are real valued functions that inherit properties of their arguments) • Example y=x1x2 • Counter example y=x1x2+1 • Lets treat sign as a Boolean Variable +/1,-/0
Important R-Functions and Theorem • R-conjunction Boolean AND • R- disjunction Boolean OR • R-negation • This system of R-functions is complete THM : If areas D1,D2,…Dn are defined by inequalities f1(x,y)≥0, f2(x,y)≥0, …, fn(x,y)≥0 and area D can be defined as Boolean function D=F(D1,D2,…Dn) the inequality g(f1(x,y), f2(x,y),…fn(x,y))≥0 where g is an R-function corresponding to the Boolean function F, defines the same area D
Important R-Functions (p=4) In black: intersection of the surface with the plane z=0 R-conjunction R-disjunction
How it works y x
Consequences • Direct formula to know if a point is inside or outside the result of Boolean operation with implicit objects! • 2 possible solutions to display/polygonize the result • Marching cubes (approximation everywhere) • our solution (approximation only near the intersection)
Outline • Introduction • So what? • Objectives • Algorithm • Results • Conclusions and Future Work
Objectives • Multiple Boolean Operations • Use of Supershapes • Low time complexity • Avoid many degenerated case • Avoid Intersection Computation • Simple display • Is it possible to end up with only one equation?
A A∩B B A-B B-A Mesh A Exact surface A∩B B Exact intersection A A U B Mesh B Meshes Intersection Classical Approach First step : Compute the intersection Second step : Keep the parts needed Intersection/Union polygon-polygon in 3D
Node Algorithm • If complex Node (sub-trees not evaluated) : • Evaluate left sub-tree then right sub-tree • Else : • Define the intersection of these 2 sub-trees • Depending on the Boolean Operation, keep the points and faces needed from the 2 sub-trees • Transmit points, faces, and equations to the parent Node
Points flagged Original objects Algorithm: An Example
Union Points flagged Intersection Difference Algorithm: An Example
Around an intersection curve F(t) 1 0 t Algorithm : Refine and Split Assumption : an edge can not be crossed more than once by an intersection curve
Outline • Introduction • So what? • Objectives • Algorithm • Results • Conclusions and Future Work
- U Parts superimposed U Results : Bolt U Original CAD File CSG Tree
Superimposed Parts Original CAD File Results : Bolt
U U U - - - U U U U U U S1 S1 S1 S2 S2 S2 S3 S3 S3 S4 S4 S4 S5 S5 S5 The Equation please…
Max y z x Min Scalar Field Generated • Note : • Surface = zero set of F • Non Unique equation Section y=0
Superimposed Parts Results : Piston Head CAD File
- U U U - U U Results : Piston Head U
CAD File Results : Piston Head
Min Max Results : Piston Head z y x
Conclusions • CAD Files CSG Tree Equation • Algorithm to do Multiple Boolean Operations • Ability to fuse (no longer a list of primitives but one full object) • Extract, cut, sculpt objects, etc. • Handle holes • Generic if primitives have both parametric and implicit definition (SQs, SShapes, Dupin Cyclides…) • Implicit form used to get the resulting equation • Parametric used for efficient display • Only one resulting equation, and no longer a Boolean expression
Conclusions • Avoid many computational errors and most of degenerate cases • No intersection computed • Avoid additional operations • Less degenerated case • End up with one implicit equation • n-Differentiable if primitives are n-differentiable (except at intersection (only Cocontinuity) ) • Easy draw due to parametric representation • ε-approximation only near the intersection, other points are lying exactly on the surface (due to parametric rep) • Evaluation of the tree in O(n) (n number of faces)
Potential Applications • Computer Graphics • Compression • Application to solve boundary problems of mathematical physics which requires inclusion of geometric information • Sections with Free Form Surface • Heat transmission • Torsion • Other? • Object and shape recognition (with prior knowledge of automotive parts as CAD models) • Fusion of geometrical information • Any ideas?
Future works Blending needed to avoid zero set values inside the object F(x,y,z)=0 Bending and twisting
Data Segmentation Shape recovery List of primitives Boolean Operations CSG Tree R-Functions Implicit Equation Display Future Works