Part Two
-
Upload
matthew-thornton -
Category
Documents
-
view
25 -
download
0
description
Transcript of Part Two
Part TwoPart Two
Multiresolution Analysis of Arbitrary Multiresolution Analysis of Arbitrary MeshesMeshes
M. Eck, T. DeRose, T. Duchamp, M. Eck, T. DeRose, T. Duchamp,
H. Hoppe, M. Lounsbery, W. StuetzleH. Hoppe, M. Lounsbery, W. StuetzleSIGGRAPH 95SIGGRAPH 95
OutlineOutline
• Partition using Voronoi diagram and Partition using Voronoi diagram and Delaunay triangulationDelaunay triangulation
• Parameterization using Harmonic MapsParameterization using Harmonic Maps
Original mesh Base complex
ApplicationsApplications
• Remeshing – subdivision connectivityRemeshing – subdivision connectivity
• Multiresolution analysis and editingMultiresolution analysis and editing
• Level-of-detailLevel-of-detail
Harmonic MapsHarmonic Maps
• Defined for topological disksDefined for topological disks
• Minimize distortion in some senseMinimize distortion in some sense
• Do not guarantee an embedding Do not guarantee an embedding (triangles flips may occur)(triangles flips may occur)
• Require boundary conditionsRequire boundary conditions
Harmonic Maps - definitionHarmonic Maps - definition
InputInput: :
mesh mesh GG with disk topology: with disk topology:
N vertices {N vertices {pp11, …, , …, ppn n , …, , …, ppNN} where} where
pp11, …, , …, ppnn are boundary verticesare boundary vertices
GoalGoal: :
Compute an embedding Compute an embedding hh of of GG
hh(i) = (i) = qqii = ( = (uuii , , vvii) ) i i = 1, …, N = 1, …, N
Harmonic Maps - definitionHarmonic Maps - definition
• The The boundary verticesboundary vertices are mapped to a are mapped to a convex polygon in the parameter convex polygon in the parameter domaindomain
• Treat each mesh edge as a spring, find Treat each mesh edge as a spring, find mappings for mappings for inner verticesinner vertices s.t. the s.t. the energy of the spring system is minimalenergy of the spring system is minimal
Harmonic mappingHarmonic mapping• Strives to preserve angles (conformal)Strives to preserve angles (conformal)• We treat the mesh as a system of We treat the mesh as a system of springs.• Define spring energy:Define spring energy:
where where vvii are the flat positions, and the boundary are the flat positions, and the boundary vertices vertices vv11, , vv22, …, , …, vvnn are constrained. are constrained.
Eji
jijiharm kE),(
2
,2
1vv
Energy minimization – least squaresEnergy minimization – least squares
• We want to find such flat positions that We want to find such flat positions that the energy is as small as possible.the energy is as small as possible.
• Solve the linear least squares problem! Solve the linear least squares problem!
2
1 1 ,( , )
2 2,
( , )
( , )
1( , , , , , )
2
1( ) ( )
2
i i i
harm N N i j i ji j E
i j i j i ji j E
x y
E x x y y k
k x x y y
v
v v
Eharm is function of 2(N–n) variables
Energy minimization – least Energy minimization – least squaressquares
• To find minimum: To find minimum: EEharmharm= = 00
• Again, Again, xx11,…., x,…., xnn and and yy11, …, y, …, ynn are are
constrained.constrained.
0)(22
1
0)(22
1
)(,
)(,
iNjjijiharm
i
iNjjijiharm
i
yykEy
xxkEx
Energy minimization – least Energy minimization – least squaressquares
• To find minimum: To find minimum: EEharmharm= = 00
• Again, Again, xx11,…., x,…., xnn and and yy11, …, y, …, ynn are are
constrained.constrained.
,( )
,( )
( ) 0, 1, 2, ,
( ) 0, 1, 2, ,
i j i jj N i
i j i jj N i
k x x i N
k y y i N
The spring constants The spring constants kki,ji,j
• The weights The weights kki,ji,j are chosen to minimize are chosen to minimize
angles distortion:angles distortion:– Look at the edge Look at the edge ((i, ji, j)) in the 3D mesh in the 3D mesh
– Set the weight Set the weight kki,ji,j = = cot cot + + cotcot
i
j3D
PartitionPartition
• Compute Voronoi diagram on the meshCompute Voronoi diagram on the mesh
• Compute induced Delaunay triangulationCompute induced Delaunay triangulation• Construct the base meshConstruct the base mesh
Voronoi DiagramVoronoi Diagram
• Given s faces (= sites) on the surface, Given s faces (= sites) on the surface, expand patches (= Voronoi cells) around expand patches (= Voronoi cells) around each one, using s-source Dijkstra algorithmeach one, using s-source Dijkstra algorithm
• How to choose the sites?How to choose the sites?– Each Voronoi cell must be a topologic diskEach Voronoi cell must be a topologic disk– Pair of cells share at most one cutPair of cells share at most one cut– No more than three cells share a vertexNo more than three cells share a vertex
Choosing the sites – Choosing the sites – greedy approachgreedy approach
Let S be the set of sites. Initiate S with a Let S be the set of sites. Initiate S with a random triangle on the mesh.random triangle on the mesh.
Grow the cells around the sites of S Grow the cells around the sites of S until one of the conditions is violated.until one of the conditions is violated.
Add the violating face to S andAdd the violating face to S and
repeat the process. repeat the process.
Constructing Delaunay Constructing Delaunay triangulationtriangulation
• On the original meshOn the original mesh: connect by a : connect by a path each pair of sites whose cells are path each pair of sites whose cells are adjacentadjacent
• To construct the base meshTo construct the base mesh: connect : connect each pair of adjacent sites by a straight each pair of adjacent sites by a straight line.line.
Algorithm summaryAlgorithm summary
• Partition the mesh (Delaunay Partition the mesh (Delaunay triangulation)triangulation)
• Construct the base meshConstruct the base mesh
• Parameterize each patch over the Parameterize each patch over the corresponding face of the base mesh. corresponding face of the base mesh. The mappings of adjacent patches The mappings of adjacent patches agree on the boundary. agree on the boundary.
Continuous parameterization over the base mesh!
34 min. , 70,000 faces34 min. , 70,000 faces
162 faces162 faces 2,000 faces , 2,000 faces , < 2.0 % < 2.0 % 4,600 faces , 4,600 faces , < 1.2 % < 1.2 %
40 min. , 100,000 faces40 min. , 100,000 faces
229 faces229 faces 2,000 faces , 2,000 faces , < 2.0 % < 2.0 % 4,700 faces , 4,700 faces , < 1.5 % < 1.5 %
346 min. , 166,000 faces346 min. , 166,000 faces
132 faces132 faces 16,451 faces , 16,451 faces , < 2.6 % < 2.6 %
Convex weights for inner verticesConvex weights for inner vertices
( , ) ( ) ( , ) ( )
s.t. 1 and 0i ij j ij iji j N i i j N i
w w w
v v
• If the weights are convex, the solution is always If the weights are convex, the solution is always valid (no self-intersections) [Floater 97]valid (no self-intersections) [Floater 97]
• The cotangent weight in Harmonic Mapping can The cotangent weight in Harmonic Mapping can be negative be negative sometimes there are triangle sometimes there are triangle flipsflips