robust repair of polygonal models tao ju rice university

34
Robust Repair of Polygonal Robust Repair of Polygonal Models Models Tao Ju Rice University

Upload: randolph-stevens

Post on 15-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robust Repair of Polygonal Models Tao Ju Rice University

Robust Repair of Polygonal ModelsRobust Repair of Polygonal ModelsRobust Repair of Polygonal ModelsRobust Repair of Polygonal Models

Tao JuRice University

Page 2: Robust Repair of Polygonal Models Tao Ju Rice University

Polygonal ModelsPolygonal Models

Page 3: Robust Repair of Polygonal Models Tao Ju Rice University

Closed ModelClosed Model

• Partitions the space into disjoint inside and outside volumes– Each polygon lies between inside and outside

Not Closed Closed ClosedNot Closed

Page 4: Robust Repair of Polygonal Models Tao Ju Rice University

Model RepairModel 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

Page 5: Robust Repair of Polygonal Models Tao Ju Rice University

Previous WorkPrevious 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]

Page 6: Robust Repair of Polygonal Models Tao Ju Rice University

Previous WorkPrevious Work

• Volumetric model repair

How to determine signs ? How to generate surface ?

Page 7: Robust Repair of Polygonal Models Tao Ju Rice University

Previous WorkPrevious 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]

Page 8: Robust Repair of Polygonal Models Tao Ju Rice University

Robust Model RepairRobust Model Repair

• Robust– Closes arbitrary polygon soups

• Efficient– Processes gigantic models on standard PCs

• Accurate– Preserves surface quality

• Simple !

Page 9: Robust Repair of Polygonal Models Tao Ju Rice University

Algorithm in a NutshellAlgorithm in a Nutshell

Contour

Patch

Closed Dual Surface

Scan-convert

“Dual Surface”

Page 10: Robust Repair of Polygonal Models Tao Ju Rice University

• They convert the input model to a volumetric form by constructing an octree grid that records edges intersecting the input model.

Scan-conversionScan-conversion

Page 11: Robust Repair of Polygonal Models Tao Ju Rice University

Scan-conversionScan-conversion

Page 12: Robust Repair of Polygonal Models Tao Ju Rice University

• 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-conversionScan-conversion

Page 13: Robust Repair of Polygonal Models Tao Ju Rice University

Scan-conversionScan-conversion

• Octree grid

• Memory-less octree construction

• Reliable and fast intersection tests

• Edges intersected with model

• Top-down creation

Page 14: Robust Repair of Polygonal Models Tao Ju Rice University

Fast intersection testsFast 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.

Page 15: Robust Repair of Polygonal Models Tao Ju Rice University

Dual SurfaceDual Surface

• Each face dual to an intersected octree edge

Octree Edge Dual Face

Page 16: Robust Repair of Polygonal Models Tao Ju Rice University

Finding HolesFinding Holes

• Boundary edges– Odd-valence edges– Closed dual surface

No boundary edge

• Set of boundary edges partitioned into cycles– Each cycle encloses

a “hole”

Page 17: Robust Repair of Polygonal Models Tao Ju Rice University

Detect boundary cyclesDetect 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.

Page 18: Robust Repair of Polygonal Models Tao Ju Rice University

• At a leaf node, detectProc[N] returns B = 0 and R = 0.

• At an internal node,(1) Call detectProc[Ni] for every child node Ni,

which return cycles Bi and incomplete cycles Ri.

(2) Detect the boundary edges E crossing the faces between adjacent children nodes. (3) Connect Ri by E to form complete cycles B’ and incomplete cycles R. B is the union of B’ and the Bis.

Detect boundary cyclesDetect boundary cycles

Page 19: Robust Repair of Polygonal Models Tao Ju Rice University

Patch boundary cyclesPatch boundary cycles

• seek the surface of minimum area spanning a given curve in 3-D space.

Page 20: Robust Repair of Polygonal Models Tao Ju Rice University

Building a PatchBuilding 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

Page 21: Robust Repair of Polygonal Models Tao Ju Rice University

Integrating a PatchIntegrating 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

Page 22: Robust Repair of Polygonal Models Tao Ju Rice University

Integrating a PatchIntegrating 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

Page 23: Robust Repair of Polygonal Models Tao Ju Rice University

Sign GenerationSign Generation

• Sign changes across dual surface– Flood-filling

Dual Face Octree Signs

Page 24: Robust Repair of Polygonal Models Tao Ju Rice University

ContouringContouring

• Marching Cubes– Edge intersections– Rounded corners

• Dual Contouring– Hermite data– Sharp features

Page 25: Robust Repair of Polygonal Models Tao Ju Rice University

Examples – CAD ModelExamples – CAD Model

Input Model

Page 26: Robust Repair of Polygonal Models Tao Ju Rice University

Examples – CAD ModelExamples – CAD Model

Dual Surface

Page 27: Robust Repair of Polygonal Models Tao Ju Rice University

Examples – CAD ModelExamples – CAD Model

Closed Dual Surface

Page 28: Robust Repair of Polygonal Models Tao Ju Rice University

Examples – CAD ModelExamples – CAD Model

Output (Marching Cubes)

Page 29: Robust Repair of Polygonal Models Tao Ju Rice University

Examples – CAD ModelExamples – CAD Model

Output (Dual Contouring)

Page 30: Robust Repair of Polygonal Models Tao Ju Rice University

Examples - BunnyExamples - Bunny1. Input 2. DS

3. DS Closed

4. Output

Model Courtesy of the Stanford 3D Scanning Repository

Page 31: Robust Repair of Polygonal Models Tao Ju Rice University

Examples - HorseExamples - Horse1. Input 2. DS

3. DS Closed

4. Output

Model Courtesy of the Stanford 3D Scanning Repository

Page 32: Robust Repair of Polygonal Models Tao Ju Rice University

Examples – David (at 1mm)Examples – David (at 1mm)

Input Output

Model Courtesy of the Digital Michelangelo Project

Page 33: Robust Repair of Polygonal Models Tao Ju Rice University

PerformancePerformance

Model Triangles Grid Time Memory

Bunny 69,451 64 3.6 sec < 10 MB

Horse 80,805 128 6.0 sec < 10 MB

Dragon 871,414 256 45.2 sec 16 MB

Buddha 1,087,716 1024 1.3 min 28 MB

David (2mm) 8,254,150 4096 8.4 min 92 MB

David (1mm) 56,230,343 8192 53.2 min 417 MB

• On PC with 1.5GHz CPU and 2GB memory

Page 34: Robust Repair of Polygonal Models Tao Ju Rice University

ConclusionConclusion

• 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