340 likes | 482 Vues
Part Two. Multiresolution Analysis of Arbitrary Meshes M. Eck, T. DeRose, T. Duchamp, H. Hoppe, M. Lounsbery, W. Stuetzle SIGGRAPH 95. Outline. Partition using Voronoi diagram and Delaunay triangulation Parameterization using Harmonic Maps. Original mesh. Base complex. Applications.
E N D
Part Two Multiresolution Analysis of Arbitrary Meshes M. Eck, T. DeRose, T. Duchamp, H. Hoppe, M. Lounsbery, W. Stuetzle SIGGRAPH 95
Outline • Partition using Voronoi diagram and Delaunay triangulation • Parameterization using Harmonic Maps Original mesh Base complex
Applications • Remeshing – subdivision connectivity • Multiresolution analysis and editing • Level-of-detail
Harmonic Maps • Defined for topological disks • Minimize distortion in some sense • Do not guarantee an embedding (triangles flips may occur) • Require boundary conditions
Harmonic Maps - definition Input: mesh G with disk topology: N vertices {p1, …, pn , …, pN} where p1, …, pnare boundary vertices Goal: Compute an embedding h of G h(i) = qi = (ui , vi) i = 1, …, N
Harmonic Maps - definition • The boundary vertices are mapped to a convex polygon in the parameter domain • Treat each mesh edge as a spring, find mappings for inner vertices s.t. the energy of the spring system is minimal
Boundary conditions - corner vertices
Harmonic mapping • Strives to preserve angles (conformal) • We treat the mesh as a system of springs. • Define spring energy: where vi are the flat positions, and the boundary vertices v1, v2, …, vn are constrained.
Energy minimization – least squares • We want to find such flat positions that the energy is as small as possible. • Solve the linear least squares problem! Eharmis function of 2(N–n) variables
Energy minimization – least squares • To find minimum: Eharm= 0 • Again, x1,…., xn and y1, …, yn are constrained.
Energy minimization – least squares • To find minimum: Eharm= 0 • Again, x1,…., xn and y1, …, yn are constrained.
The spring constants ki,j • The weights ki,j are chosen to minimize angles distortion: • Look at the edge (i, j) in the 3D mesh • Set the weight ki,j = cot + cot i 3D j
Partition • Compute Voronoi diagram on the mesh • Compute induced Delaunay triangulation • Construct the base mesh
Voronoi Diagram • Given s faces (= sites) on the surface, expand patches (= Voronoi cells) around each one, using s-source Dijkstra algorithm • How to choose the sites? • Each Voronoi cell must be a topologic disk • Pair of cells share at most one cut • No more than three cells share a vertex
Voronoi Diagram Each cell is a topological disk
Voronoi Diagram Two cells share at most one boundary
Voronoi Diagram Two cells share at most one boundary
Voronoi Diagram At most three cells meet at a vertex
Choosing the sites – greedy approach Let S be the set of sites. Initiate S with a random triangle on the mesh. • Grow the cells around the sites of S until one of the conditions is violated. • Add the violating face to S and repeat the process.
Constructing Delaunay triangulation • On the original mesh: connect by a path each pair of sites whose cells are adjacent • To construct the base mesh: connect each pair of adjacent sites by a straight line.
Algorithm summary • Partition the mesh (Delaunay triangulation) • Construct the base mesh • Parameterize each patch over the corresponding face of the base mesh. The mappings of adjacent patches agree on the boundary. Continuous parameterization over the base mesh!
34 min. , 70,000 faces 4,600 faces , e < 1.2 % 162 faces 2,000 faces , e < 2.0 %
40 min. , 100,000 faces 4,700 faces , e < 1.5 % 229 faces 2,000 faces , e < 2.0 %
346 min. , 166,000 faces 16,451 faces , e < 2.6 % 132 faces
Convex weights for inner vertices • If the weights are convex, the solution is always valid (no self-intersections) [Floater 97] • The cotangent weight in Harmonic Mapping can be negative sometimes there are triangle flips