Presentation is loading. Please wait.

Presentation is loading. Please wait.

Robust Repair of Polygonal Models Tao Ju Rice University.

Similar presentations


Presentation on theme: "Robust Repair of Polygonal Models Tao Ju Rice University."— Presentation transcript:

1 Robust Repair of Polygonal Models Tao Ju Rice University

2 Polygonal Models

3 Closed Model Partitions the space into disjoint inside and outside volumes –Each polygon lies between inside and outside Not ClosedClosed Not Closed

4 Model Repair Close polygonal models –Not just hole-filling Challenges: –Models may contain complex errors –Models are often very big –Geometry features need to be preserved

5 Previous Work Mesh-based model repair –Zippering [ Turk and Levoy 1994 ] –Stitching [ Barequet and Kumar 1997 ] –Progressive boundary decimation [ Borodin et al. 2002 ] –Hole filling with fairing [ Liepa 2003 ] Scattered data reconstruction –Tangent plane estimation [ Hoppe et al. 1992 ] –Level sets [ Zhao and Osher 2002 ] –Radial basis functions [ Turk and O’Brien 2002 ] –Partition-of-unity methods [ Ohtake et al. 2003 ] –Moving least squares surfaces [ Shen et al. 2004 ] –Context-based completion [ Sharf et al. 2004 ]

6 Previous Work Volumetric model repair  How to determine signs ?  How to generate surface ?

7 Previous Work Volumetric model repair – Sign generation –Adaptive signed distances [ Frisken et al. 2000 ] –Flood-filling [ Oomes et al. 1997 ] [ Andujar et al. 2002 ] –Space carving [ Curless and Levoy 1996 ] –Volumetric diffusion [ Davis et al. 2002 ] –Parity count and ray stabbing [ Nooruddin and Turk 2003 ] Volumetric model repair – Contouring –Marching Cubes [ Lorensen and Cline 1987 ] –Extended Marching Cubes [ Kobbelt et al. 2001 ] –Dual Contouring [ Ju et al. 2002]

8 Robust Model Repair Robust –Closes arbitrary polygon soups Efficient –Processes gigantic models on standard PCs Accurate –Preserves surface quality Simple !

9 Algorithm in a Nutshell Contour Patch Closed Dual Surface Scan- convert “Dual Surface”

10 They convert the input model to a volumetric form by constructing an octree grid that records edges intersecting the input model. Scan-conversion

11

12 They recursively walk down the octree, expanding nodes when necessary, until all the leaf cells at the bottom level of the tree that intersect the polygon are located. Then, cell edges that intersect the polygon are identified in those leaf cells and are marked as intersection edges (figure 4 (d)). Scan-conversion

13 Octree grid Memory-less octree construction Reliable and fast intersection tests Edges intersected with model Top-down creation

14 Fast intersection tests a triangle and a cube are disjoint if their projections on any one of the following 13 vectors are disjoint: (1) the triangle face normal, (2) 3 cube face normals, (3) and 9 pair-wise cross-products of the 3 edges of the cube and the 3 edges of the triangle.

15 Dual Surface Each face dual to an intersected octree edge Octree EdgeDual Face

16 Finding Holes Boundary edges –Odd-valence edges –Closed dual surface  No boundary edge Set of boundary edges partitioned into cycles –Each cycle encloses a “hole”

17 Detect boundary cycles Detecting the boundary edges in  (S) simply involves enumerating the cell faces on the primal grid containing an odd number of intersection edges. To form cycles, we introduce a bottom-up procedure detectProc[N] that returns all complete cycles B and incomplete cycles R inside the octree node N.

18 At a leaf node, detectProc[N] returns B = 0 and R = 0. At an internal node, (1) Call detectProc[Ni] for every child node N i, which return cycles B i and incomplete cycles R i. (2) Detect the boundary edges E crossing the faces between adjacent children nodes. (3) Connect R i by E to form complete cycles B’ and incomplete cycles R. B is the union of B’ and the B i s. Detect boundary cycles

19 Patch boundary cycles seek the surface of minimum area spanning a given curve in 3-D space.

20 Building a Patch Build one patch for each cycle –Each quad dual to an octree edge –Patch boundary is the cycle Divide-and-conquer! –Using octree

21 Integrating a Patch Add a quad –If does not exist on the dual surface Remove a quad –If already exists on the dual surface Key: parity of edge valence

22 Integrating a Patch Add a quad –If not already on the dual surface Remove a quad –If already on the dual surface Key: parity of edge valence

23 Sign Generation Sign changes across dual surface –Flood-filling Dual FaceOctree Signs

24 Contouring Marching Cubes –Edge intersections –Rounded corners Dual Contouring –Hermite data –Sharp features

25 Examples – CAD Model Input Model

26 Examples – CAD Model Dual Surface

27 Examples – CAD Model Closed Dual Surface

28 Examples – CAD Model Output (Marching Cubes)

29 Examples – CAD Model Output (Dual Contouring)

30 Examples - Bunny 1. Input 2. DS 3. DS Closed 4. Output Model Courtesy of the Stanford 3D Scanning Repository

31 Examples - Horse 1. Input2. DS 3. DS Closed 4. Output Model Courtesy of the Stanford 3D Scanning Repository

32 Examples – David (at 1mm) Input Output Model Courtesy of the Digital Michelangelo Project

33 Performance ModelTrianglesGridTimeMemory Bunny 69,451643.6 sec< 10 MB Horse 80,8051286.0 sec< 10 MB Dragon 871,41425645.2 sec16 MB Buddha 1,087,71610241.3 min28 MB David (2mm) 8,254,15040968.4 min92 MB David (1mm) 56,230,343819253.2 min417 MB On PC with 1.5GHz CPU and 2GB memory

34 Conclusion A simple, fast, and robust method to repair arbitrary polygon models Future work –Remove topological noise –Improve the quality of hole filling –Repair using an adaptive grid


Download ppt "Robust Repair of Polygonal Models Tao Ju Rice University."

Similar presentations


Ads by Google