laplacian mesh processingcs749/spr2017/lecs/18_laplace.pdf · the laplace-beltrami operator just...

40
Sorkine et al. Laplacian Mesh Processing (includes material from Olga Sorkine, Yaron Lipman, Marc Pauly, Adrien Treuille, Marc Alexa and Daniel Cohen-Or) Siddhartha Chaudhuri http://www.cse.iitb.ac.in/~cs749

Upload: others

Post on 07-Nov-2020

55 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Sorkine et al.

Laplacian Mesh Processing(includes material from Olga Sorkine, Yaron Lipman, Marc Pauly,

Adrien Treuille, Marc Alexa and Daniel Cohen-Or)

Siddhartha Chaudhuri http://www.cse.iitb.ac.in/~cs749

Page 2: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Recap: Laplacian in Euclidean space

● Laplacian (of scalar-valued function):

– In operator form:

– Maps scalar field to scalar field

Gam

asut

ra

Δ=( ∂2

∂ x12 ,

∂2

∂ x22 , ... ,

∂2

∂ xn2 )

Δ f = ∇⋅∇ f =

∂2 f

∂ x12 +

∂2 f

∂ x22 + ... + ∂2 f

∂ xn2

Original function After applying Laplacian

Divergence of gradient of f

Page 3: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Recap: Laplacian in Euclidean space● The Laplacian can be discretized

1

h2 [−2 1 0 ⋯ 0 01 −2 1 ⋯ 0 0

1 −2 ⋯ 0 0⋮ ⋱ ⋮0 0 −2 10 0 ⋯ 1 −2

]1D discrete Laplace operator

Continuous function

Discrete approximation

0 1

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1h [

−1 1 0 ⋯ 0 00 −1 1 ⋯ 0 0

0 −1 ⋯ 0 0⋮ ⋱ ⋮0 0 −1 10 0 ⋯ 0 −1

]1D discrete gradient

Page 4: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian in 2D Euclidean space● The Laplacian can be discretized

2D discrete Laplace operator

Continuous function

Discrete approximation

Page 5: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian in 2D Euclidean space● The Laplacian is computed via differences of a cell

from its neighbors● We can think of the

grid as a graphconnecting adjacentcells

4

–1 –1

–1

–1

Page 6: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Thought for the Day #1

Can you express applying the Laplacian (or otherdifferential operator) as a convolution?

Page 7: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Graph Laplacian

● For a general graph, we can compute a similarLaplace operator– The function f is represented by its values at graph

vertices– The discrete Laplace operator is applied on graph

neighborhoods centred at the vertices– If the graph is a grid, we should recover the standard

Euclidean Laplacian

Page 8: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Graph Laplacian

● Let G = (V, E) be an undirected graph● Let N1(i) represent the 1-ring neighborhood of

vertex i, that is, N1(i) = { j | (i, j) ∈ E }

● The degree di of vertex i is |N1(i)|

● Let D be the diagonal matrix with Dii = di

● The adjacency matrix A of G is

Page 9: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Graph Laplacian

● The (topological) Laplacian matrix L of the graphis defined as

L = I – D-1A

● Commonly, we can multiply by D and consider thesymmetric Laplacian Ls = DL = D – A instead

Verify that this gives the correct grid Laplacian

Page 10: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Graph Laplacian

Graph Symmetric Laplacian Ls

Page 11: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Mesh (Topological) Laplacian

● Recall: a mesh is a graph● … so we can compute its topological Laplacian

Vertices

Edges

Faces

Page 12: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Refining the mesh

● What happens to the Laplacian as we make themesh finer and finer?– The graph serves as a proxy

for the surface– Eventually, the graph’s

metric propertiesshould reduce togeometricsurface properties

Leif Kobbelt Group

Page 13: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Thought for the Day #2

The topological Laplacian does not care about theembedding metric, i.e. the lengths of edges in thegraph. How, then, can the Laplacian be sensitive to

the geometry of the surface?

Page 14: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Once again: the Euclidean Laplacian

Page 15: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

The Laplace-Beltrami operator

● Extension of continuous Laplacian to manifolds(“smooth curved surfaces/spaces”)

Page 16: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

The Laplace-Beltrami operator

● Example: Let x be the coordinate function:x(p) = position of p

Here, applyingthe Laplacian toa vector-valuedfunction meansapplying it to

each coordinateindividually

Page 17: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

The Laplace-Beltrami operator

● Just like in 2D Euclidean space, if we know the Laplace-Beltramioperator of the surface, and the function value at a single point,we can solve for the function at all points on the surface

● Why is this important?– The LB operator captures global properties of the surface in terms of

local properties– It expresses a local invariant

● E.g. for the coordinate function, it expresses the surface in terms of its localcurvature and orientation

– We can modify the properties locally in one small region andrecompute the global properties, trying to preserve the local propertyeverywhere else

Page 18: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

The Laplace-Beltrami operator

● The topological Laplacian is an approximation tothe discrete Laplace-Beltrami operator

● We shall see better approximations soon

Page 19: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian Mesh Editing: Motivation

● Meshes are great, but:– Geometry is represented in a single global coordinate

system– Single Cartesian coordinate of a vertex doesn’t say

much

Page 20: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian Mesh Editing: Motivation

● Meshes are difficult to edit

Page 21: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian Mesh Editing: Motivation

● Meshes are difficult to edit

Page 22: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian Mesh Editing: Motivation

● Meshes are difficult to edit

Page 23: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Differential Coordinates

● Represent a point relative to its neighbors● Represent local detail at each surface point● Linear operator takes us from global to differential● Useful for operations on surfaces where surface

details are important

Page 24: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Differential Coordinates

● Detail = surface – smooth(surface)● Smoothing = averaging

Page 25: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Connection to the smooth case

● The direction of δi approximates the normal● The magnitude of δi approximates the mean

curvature

Page 26: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Connection to graph Laplacian

Graph Symmetric Laplacian Ls

Page 27: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Weighting Schemes

Page 28: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Laplacian Mesh

● Vertex positions are represented by Laplaciancoordinates (δx , δy , δz)

Page 29: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Basic properties

● rank(L) = n – c (n – 1 for connected meshes)● We can reconstruct the xyz geometry from δ upto

translation

Page 30: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Reconstruction

Page 31: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Reconstruction

Page 32: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Reconstruction

Page 33: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Cool underlying idea

● Mesh vertices are defined by the minimizer of anobjective function

Page 34: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

What we have so far

● Laplacian coordinates δ = Lx

– Local representation– Translation invariant

● Linear transition from δ to xyz

– Can constrain one or more vertices– Least squares solution

Page 35: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Editing using differential coordinates

● The editing process from the user’s point of view– First, set ROI, anchors and handle vertex– Move handle vertex to perform edit

Page 36: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Editing using differential coordinates

● The user moves the handle and interactively thesurface changes

● The stationary anchors are responsible for smoothtransition of the edited part to the rest of themesh

● This is done using increasing weight with geodesicdistance in the soft spatial equations

Page 37: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Mesh editing example

Page 38: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Mesh editing example

Page 39: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Mesh editing example

Page 40: Laplacian Mesh Processingcs749/spr2017/lecs/18_laplace.pdf · The Laplace-Beltrami operator Just like in 2D Euclidean space, if we know the Laplace-Beltrami operator of the surface,

Mesh editing example