3D Surface Parameterization

advertisement
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, …, pn are 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
Mapping inner vertices
Harmonic mapping
• Strives to preserve angles (conformal)
• We treat the mesh as a system of springs.
• Define spring energy:
Eharm
1

ki , j vi  v j

2 (i , j )E
2
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!
vi  ( xi , yi )
1
, yN ) 
2

Eharm ( x1 ,
, xN , y1 ,
1

2
ki , j  ( xi  x j ) 2  ( yi  y j ) 2 

( i , j )E
( i , j )E
ki , j v i  v j
Eharm is function of 2(N–n) variables
2

Energy minimization – least
squares
• To find minimum: Eharm= 0

1
Eharm 
xi
2

1
Eharm 
yi
2
2k
jN ( i )
i, j
2k
jN ( i )
i, j
( xi  x j )  0
( yi  y j )  0
• Again, x1,…., xn and y1, …, yn are
constrained.
Energy minimization – least
squares
• To find minimum: Eharm= 0

ki , j ( xi  x j )  0, i  1, 2,
, N

ki , j ( yi  y j )  0, i  1, 2,
, N
jN ( i )
jN ( i )
• 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


j
3D
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
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.
Constructing Delaunay
triangulation
Constructing Delaunay
triangulation
Base mesh
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!
Results
34 min. , 70,000 faces
162 faces
2,000 faces , e < 2.0 %
4,600 faces , e < 1.2 %
40 min. , 100,000 faces
229 faces
2,000 faces , e < 2.0 %
4,700 faces , e < 1.5 %
346 min. , 166,000 faces
132 faces
16,451 faces , e < 2.6 %
Texture mapping
Convex parameterization
Convex weights for inner vertices
vi 

( i , j )N ( i )
wij v j
s.t.

( i , j )N ( i )
wij  1 and wij  0
• 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
End of Part Two
Download