Mesh Parameterization: Theory and Practice Making it work in practice Numerics - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Mesh Parameterization: Theory and Practice Making it work in practice Numerics

Description:

Mesh Parameterization: Theory and Practice. Making it work in practice - Numerics ... Discrete fairing [Kobbelt98, Mallet95] Parameterization [Desbrun02] Deformations ... – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 33
Provided by: conr2
Category:

less

Transcript and Presenter's Notes

Title: Mesh Parameterization: Theory and Practice Making it work in practice Numerics


1
Mesh ParameterizationTheory and
PracticeMaking it work in practice - Numerics
Bruno Lévy - INRIA
2
Overview
  • 1. Numerical Problems
  • 2. Linear and Quadratic
  • 3. Non-linear

3
Motivations
Need for scalability in GP
4
1. Numerical Problems in GPMesh Parameterization
Ui S ai,jUj
j ? Ni
i
? i,j ai,j gt 0 ai,i - S ai,j
j1
j
The border is mapped to a convex polygon
j2
Tutte, Floater
5
1. Numerical Problems in GPDiscrete Fairing
2
F(p) S pi - S ai,jpj
i
j ? Ni
i
j1
j
j2
Mallet, Kobbelt, Sorkine
6
1. Numerical Problems in GPNeighborhoods
F sum of terms, attached to neighborhoods
Parameterization Haker00 Levy02
Curv. Estimation Cohen-Steiner 03 Texture
mapping Levy01 Discrete fairing Desbrun, ...
Discrete fairing Kobbelt98, Mallet95 Parameteriz
ation Desbrun02 Deformations CohenOr,
Sorkine
Eck
7
2. Linear and Quadratic GPRemoving degrees of
freedom
2
F(x) A x - b
2

xf xl
Af Al - b
F(xf)
8
2. Linear and Quadratic GPRemoving degrees of
freedom
The problem (1) construct a linear system
(2) solve a linear system
9
2. Linear and Quadratic GPThe OpenNL approach
(http//alice.loria.fr/software)
The problem (1) construct a linear system
(2) solve a linear system
NlLockVariable(i1, val1) NlLockVariable(i2,
val2) For each stencil instance (one-rings)
NlBeginRow() NlAddCoefficient(i, a)
NlEndRow()
  • Need for
  • Dynamic Matrix DS
  • Updating formula

10
2. Linear and Quadratic GPDirect Solvers (LU)
A Textbook solver LU factorization (and Cholesky)
a small problem O(n3) !!
11
2. Linear and Quadratic GPSuccessive
Over-Relaxation (Gauss-Seidel)
xf1
.
.
.
.
.

ci
xfi
.
.
.
.
.
xfnf
used in Taubin95
12
2. Linear and Quadratic DGPSuccessive
Over-Relaxation (Gauss-Seidel)
1000 iterations S.O.R.
13
2. Linear and Quadratic GPWhite Magic The
Conjugate Gradient
inline int solve_conjugate_gradient(
const SparseMatrix A, const Vector b, Vector
x, double eps, int max_iter )
int N A.n() double t, tau, sig,
rho, gam double bnorm2
BLASddot(N,b,1,b,1) double
errepsepsbnorm2
mult(A,x,g) BLASdaxpy(N,-1.,b,1,g,1)
BLASdscal(N,-1.,g,1)
BLASdcopy(N,g,1,r,1) while (
BLASddot(N,g,1,g,1)gterr its lt max_iter)
mult(A,r,p)
rhoBLASddot(N,p,1,p,1)
sigBLASddot(N,r,1,p,1)
tauBLASddot(N,g,1,r,1)
ttau/sig BLASdaxpy(N,t,r,1,x,1)
BLASdaxpy(N,-t,p,1,g,1)
gam(ttrho-tau)/tau
BLASdscal(N,gam,r,1)
BLASdaxpy(N,1.,g,1,r,1) its
return its
Only simple vector ops (BLAS)
Shewchuck CG without the agonizing pain
14
Iterative Solvers
  • Successive Over-Relaxation
  • Sparse C.G. gt100x
    speedup

15
Iterative Solvers
The Sparse Conjugate Gradient Solver
Sparse storage of G AftAf
Interactive solver !!!
16
White magic Multigrid
Remember direct solver is O(n3)
Sparse Conjugate Gradient is O(n2) !!
Thats much better, but
we want even more efficiency !!
17
White magic Multigrid
Lee,Schroeder, Kobbelt,Hackbuch
18
White magic Multigrid
MIPS, HLSCM, ABF
Step 2 Cascadic multigrid
19
White Magic Multigrid
direct solver O(n3) Sparse CG O(n2)
Multigrid O(n) !!
20
Black Magic Sparse Direct
We started from O(n3) We achieved O(n)
Can we do better ?
-- Interactivity -- -- Ease of implementation --
Sheffer et.al SuperLU for ABF Botsch et.al
Interactive mesh deformation
21
2. Linear and Quadratic DGPBlack Magic Sparse
Direct Solvers
Super-nodal Demmel et.al 96 Multi-frontalL
excellent et.al 98 Toledo
et.al
Direct methods revenge
Super-Nodal data structure
TAUCS, SuperLU, CHOLDMOD
22
Black Magic Sparse direct
Interactivity
TAUCS, SuperLU, CHOLDMOD
23
2. Linear and Quadratic GPOpenNL architecture
NlLockVariables(i,a) NlBeginRow() NlAddCoeffici
ent(i,a) NlEndRow() NlSolve()
24
2. Linear and Quadratic GPApplications
Maya
Gocad Meshing for oil-exploration
Blender (OpenSource)
VSP-Technology ATARI-Infogrammes
25
2. Linear and Quadratic GPApplications
OpenNL in SILO
26
3. Non-Linear GP
  • MIPS Hormann, Stretch Sander
  • ABF Sheffer, ABF Sheffer Lévy
  • PGP Ray,Levy,Li,Sheffer,Alliez
  • Circle Packings/Patterns Bobenko, Karevych

27
Conquer the non-linear world
We want to optimize a function F(x) What can we
do when F is non-linear ?
28
Conquer the non-linear world
Non-linear shapes functionals
Connectivity shapes Angle Based Flattening

Demos
29
Conclusionsa map to the solvers jungle
Numerical Solvers
30
Conclusions
100x speedup w.r.t. S.O.R. simple to implement
Linear O(n) !!! (1000x) best for huge objects
Ultra-fast (best for interactivity) (10000x) Big
memory overhead
Difficult to tune
31
ConclusionTake home message
  • In most cases, TAUCS OOC will do the job.
  • For small datasets, PreCG has a good
    simplicity/mem. requirement/efficientcy ratio.
  • Use OpenNL for Matrix Assembly - Solver
    Abstraction

32
Resources
  • Source code papers
  • on http//alice.loria.fr
  • Graphite
  • OpenNL
Write a Comment
User Comments (0)
About PowerShow.com