My PhD Thesis Work l With: n Tony DeRose (Computer Science) n Tom Duchamp (Mathematics) n John McDonald (Statistics) n Werner Stuetzle (Statistics) n... (University of Washington, 91-94)
3D Scanning digital model physical object computer-aided design (CAD) reverse engineering/ 3D scanning shapecolormaterial surface reconstruction
Why 3D scanning? l Digital models for many objects dont exist. n reverse engineering (Boeing 737X) n archiving n virtual environments l Traditional design (using clay) n car industry n computer animation l 3D faxing!
Surface reconstruction points P surfaceS l reverse engineering l traditional design (wood,clay) l virtual environments
smooth surfaces B-spline Previous work subdivision implicit meshes simple surface topological type [Schumaker93], … arbitrary [Sclaroff-Pentland91],... - [Schmitt-etal86],[Forsey-Bartels95],..., [Hoppe-etal92,93], [Turk-Levoy94],... [Moore-Warren91],[Bajaj-etal95] [Hoppe-etal94] [Krishnamurthy-Levoy] … [Krishnamurthy-Levoy] [Eck-Hoppe96],…
Surface reconstruction problem l Given: points P sampled from unknown surface U l Goal: reconstruct a surface S approximating U n accurate (w.r.t. P, and U!) n concise n concise
Why is this difficult? l Points P n unorganized n noisy l Surface S n arbitrary, unknown topological type n sharp features l Algorithm must infer: n topology, geometry, and sharp features
3-Phase reconstruction method phase 1 points initial mesh optimized mesh optimized subdivision surface phase 2 phase 3 Find piecewise smooth surface. Find initial surface of correct topological type. Detect sharp features automatically Improve its accuracy and conciseness. Goals: [SIGGRAPH92] [SIGGRAPH93] [SIGGRAPH94]
Example ,000 points
Phase 1: Initial surface estimation l If U were known, it would satisfy U = Z(d) = { p | d(p)=0 }, where d(p) is the signed distance of p to U U d(p)? – – – – – – – – – – – d(p)?
Estimate d from P Extract Z(d) S P
Phase 1 (contd) l How to estimate d? compute tangent planes orient them consistently
Phase 1 (contd) l How to extract Z(d)? run marching cubes
Phase 2: Mesh optimization l Input: data points P, initial mesh M initial l Output: optimized mesh M, minimizing E(M) = E distance + E complexity 2
Phase 2 (contd) l Optimization over: n the number of vertices n their connectivity n their positions consider any mesh of the same topological type as M initial
Phase 2 (contd) Nested optimization: l optimize connectivity l for fixed connectivity, optimize geometry edge collapse edge swap edge split Greedy approach: n consider local perturbations accept if E(M)<0 accept if E(M)<0
Phase 2: Results using 31,000 points from Digibotics, Inc. using 13,000 points using 182,000 points from Technical Arts Co.
Phase 3: Piecewise smooth surface piecewise piecewise surface piecewise planar piecewise smooth surface 3
Subdivision surfaces M0M0M0M0 M1M1M1M1 M2M2M2M2 S=M S=M [Loop87] tagged control mesh [Hoppe-etal94]
Phase 3 (contd) l Generalize phase 2 optimization: edge collapse edge swap edge split edge tag Again, apply perturbation if E(M)<0 Again, apply perturbation if E(M)<0
Phase 3: Results
Related work phase 1 initial mesh optimized mesh optimized subdivision surface phase 2 phase 3 volumetric repr. (Curless&Levoy) alpha shapes (Edelsbrunner) CAD models (Sequin) NURBS surface (Krishnamurthy&Levoy) (Eck&Hoppe)