Transcript Document
Least-squares Meshes Olga Sorkine and Daniel Cohen-Or Tel-Aviv University SMI 2004 Our goal Shape approximation – Connectivity data – Sparse geometric data Exploit information in the mesh graph Connectivity Shapes Connectivity has geometric information in it [Isenburg, Gumhold and Gotsman 01] showed how to get a shape from connectivity by assuming uniform edge length and smoothness – Non-linear optimization process to get shape from connectivity Images taken from the “Connectivity Shapes”, Isenburg et al., IEEE Visualization ‘01 Our approach Enrich the connectivity by sparse set of control points with geometry Solve a linear least-squares problem to reconstruct the geometry of all vertices (the approximated shape) Geometry hidden in connectivity There is geometry in connectivity The linear system We have two types of constraints: – Fairness constraint L(vi) = 0 i – Geometric constraint vj = cj jC L is the mesh Laplacian operator: 1 L( v i ) v i di v jNi j Linear least-squares solution 0 0 L 1 0 0 1 min Lx x 2 x1 x2 xn 0 0 0 0 0 c1 c 2 | x j c j | jC 2 Connection to Tutte/Floater embedding Similar system was used by [Tutte 63] and [Floater 97] for graph drawing and parameterization. Constraints placed on boundary vertices along a convex 2D polygon Connection to Tutte/Floater embedding Tutte system has hard constraints Lx 0; xi1 c1 , xi2 c2 , , xik ck – The smoothness condition is not satisfied at constrained vertices 1 1 d2 0 1 dn d11 d11 0 d12 1 d12 1 dn11 dn11 d1n dn11 d1n 1 0 1 Linear least-squares solution We solve the system for 3D positions of the vertices Arbitrary topology The constraints are soft, not necessarily on a boundary 0 0 L 1 0 0 1 min Lx x 2 x1 x2 xn 0 0 0 0 0 c1 c 2 | x j c j | jC 2 Solving the least-squares problem Ax b We need to solve an over-determined system: We find the solution by solving the normal equations: AT Ax AT b x ( AT A)1 AT b Very efficient solution by Cholesky factorization of ATA: A A R R T T – R is upper-triangular and sparse – Once R is computed, solving for x, y, z by back-substitution: R ξA b T Rx ξ T Basis functions The geometry reconstructed by solving x A*b A * ( AT A) 1 AT is in fact a combination of k basis functions: 0 0 0 0 0 0 * x A c1 c1 A* 1 c2 A* 0 c2 0 1 0 0 c k 0 0 ck A* 0 0 1 Basis functions The basis functions are defined on the entire mesh – Connectivity data – defined for arbitrary topology – Tagging of the control vertices The bases satisfy (in LS sense): – Smooth everywhere : Lui = 0 – Large on the i-th control vertex (ui = 1) and vanish on all others 5 basis functions on a 2D mesh (simple chain) Spectral basis vs. LS basis Another basis for compact geometry representation on meshes was proposed by [Karni and Gotsman 2000]: – The basis functions are eigenvectors of L, sorted in increasing eigenvalue order Spectral Basis The spectral basis does not take any geometric information into account Requires eigendecomposition – impractical for today’s meshes LS basis The LS basis tags specific vertices, which makes it “geometry-aware” Require solving sparse linear least-squares problem – can be done efficiently Selecting the control points Random selection – Fast, but less effective approximation Greedy approach – Place one-by-one at vertices with highest reconstruction error – Slow, but gives good approximation Greedy selection combined with local error maxima – A reasonable compromise Random selection Greedy approach 1000 control points Combined approach Some results – varying number of control points Original camel 39074 vertices 100 control points 600 control points 1200 control points 3600 control points Some results – varying number of control points Original feline 49864 vertices 100 control points 500 control points 4000 control points 9000 control points Running times Pentium 2.4 GHz computer Models Factor (sec.) Solve (sec.) Total (sec.) 2718 0.085 0.004 0.097 Horse 19851 0.900 0.032 0.996 Camel 39074 2.096 0.073 2.315 Feline 49864 2.750 0.110 3.080 100086 7.713 0.240 8.433 Eight Max Planck # vertices Applications Progressive geometry compression and streaming 100 control points 1000 control points 3000 control points 100,086 vertices, 8 seconds 10000 control points Applications Progressive geometry compression and streaming Hole filling Applications Progressive geometry compression and streaming Hole filling Mesh editing Conclusions LS-mesh represents mesh geometry using the mesh connectivity and a sparse set of control points Linear reconstruction Arbitrary topology For future work, we’d like to understand better how the mesh connectivity affects the shape or the reconstruction – governed by the shape of the basis vectors – the shape of the singular vectors of the LS system matrix A Acknowledgments Israel Science Foundation (founded by the Israel Academy of Sciences and Humanities) Israeli Ministry of Science German Israel Foundation (GIF) Models courtesy of Max-Planck Institut für Informatik, Stanford University, Cyberware Who created the beautiful Camel ?? Thank you!