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!