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
jC

L is the mesh Laplacian operator:
1
L( v i )  v i 
di
v
jNi
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 | 
jC

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
 dn11
 dn11
 d1n
 dn11
 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 | 
jC

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!