290 likes | 315 Views
Robust Repair of Polygonal Models. Tao Ju Rice University. Polygonal Models. Not Closed. Closed. Not Closed. Closed. Closed Model. Partitions the space into disjoint inside and outside volumes Each polygon lies between inside and outside. Model Repair. Close polygonal models
E N D
Robust Repair of Polygonal Models Tao Ju Rice University
Not Closed Closed Not Closed Closed Closed Model • Partitions the space into disjoint inside and outside volumes • Each polygon lies between inside and outside
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
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]
Previous Work • Volumetric model repair • How to determine signs ? • How to generate surface ?
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]
Robust Model Repair • Robust • Closes arbitrary polygon soups • Efficient • Processes gigantic models on standard PCs • Accurate • Preserves surface quality • Simple !
“Dual Surface” Scan-convert Patch Contour Closed Dual Surface Algorithm in a Nutshell
Scan-conversion • Octree grid • Edges intersected with model • Top-down creation Memory-less octree construction Reliable and fast intersection tests
Dual Surface • Each face dual to an intersected octree edge Octree Edge Dual Face
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”
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
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
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
Sign Generation • Sign changes across dual surface • Flood-filling Dual Face Octree Signs
Contouring • Marching Cubes • Edge intersections • Rounded corners • Dual Contouring • Hermite data • Sharp features
Examples – CAD Model Input Model
Examples – CAD Model Dual Surface
Examples – CAD Model Closed Dual Surface
Examples – CAD Model Output (Marching Cubes)
Examples – CAD Model Output (Dual Contouring)
Examples - Bunny 1. Input 2. DS 4. Output 3. DS Closed Model Courtesy of the Stanford 3D Scanning Repository
Examples - Horse 1. Input 2. DS 4. Output 3. DS Closed Model Courtesy of the Stanford 3D Scanning Repository
Output Examples – David (at 1mm) Input Model Courtesy of the Digital Michelangelo Project
Performance • On PC with 1.5GHz CPU and 2GB memory
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 • Special thanks to my advisor, Prof. Joe Warren, for his insights and support