CS 6501 2 D3 D Shape Manipulation 3

  • Slides: 49
Download presentation
CS 6501 2 D/3 D Shape Manipulation, 3 D Printing Digital Geometry Processing -Mesh

CS 6501 2 D/3 D Shape Manipulation, 3 D Printing Digital Geometry Processing -Mesh Smoothing March 27, 2013

Outlook – Topics ● Smoothing ● Parameterization ● Remeshing March 27, 2013 Olga Sorkine-Hornung

Outlook – Topics ● Smoothing ● Parameterization ● Remeshing March 27, 2013 Olga Sorkine-Hornung # 2

Surface Smoothing – Motivation ● Scanned surfaces can be noisy March 27, 2013 Olga

Surface Smoothing – Motivation ● Scanned surfaces can be noisy March 27, 2013 Olga Sorkine-Hornung # 3

Surface Smoothing – Motivation ● Scanned surfaces can be noisy March 27, 2013 Olga

Surface Smoothing – Motivation ● Scanned surfaces can be noisy March 27, 2013 Olga Sorkine-Hornung # 4

Surface Fairing – Motivation ● Marching Cubes meshes can be ugly • Why is

Surface Fairing – Motivation ● Marching Cubes meshes can be ugly • Why is the left mesh ugly? • Why is the right mesh ugly? § What is the problem with such triangles? March 27, 2013 Olga Sorkine-Hornung # 5

Filtering Curves ● Discrete second derivative: ● In matrix-vector form for the whole curve

Filtering Curves ● Discrete second derivative: ● In matrix-vector form for the whole curve March 27, 2013 Olga Sorkine-Hornung # 6

Filtering Curves ● Gaussian filtering Scale factor 0 < < 1 ● Matrix-vector form:

Filtering Curves ● Gaussian filtering Scale factor 0 < < 1 ● Matrix-vector form: ● March 27, 2013 Olga Sorkine-Hornung # 7

Filtering Curves ● Gaussian filtering ● Scale factor 0 < < 1 ● Drawbacks

Filtering Curves ● Gaussian filtering ● Scale factor 0 < < 1 ● Drawbacks § ? March 27, 2013 Olga Sorkine-Hornung # 8

Filtering Curves ● Gaussian filtering ● Scale factor 0 < < 1 ● Drawbacks

Filtering Curves ● Gaussian filtering ● Scale factor 0 < < 1 ● Drawbacks § Causes the curve/mesh to shrink; slow March 27, 2013 Olga Sorkine-Hornung # 9

Filtering Curves Original curve March 27, 2013 Olga Sorkine-Hornung # 10

Filtering Curves Original curve March 27, 2013 Olga Sorkine-Hornung # 10

Filtering Curves 1 st iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 11

Filtering Curves 1 st iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 11

Filtering Curves 2 nd iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 12

Filtering Curves 2 nd iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 12

Filtering Curves 8 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 13

Filtering Curves 8 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 13

Filtering Curves 27 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 14

Filtering Curves 27 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 14

Filtering Curves 50 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 15

Filtering Curves 50 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 15

Filtering Curves 500 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 16

Filtering Curves 500 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 16

Filtering Curves 1000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 17

Filtering Curves 1000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 17

Filtering Curves 5000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 18

Filtering Curves 5000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 18

Filtering Curves 10000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 19

Filtering Curves 10000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 19

Filtering Curves 50000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 20

Filtering Curves 50000 th iteration; =0. 5 March 27, 2013 Olga Sorkine-Hornung # 20

Recap: Laplace-Beltrami High-pass filter: extracts local surface detail ● Detail = smooth(surface) – surface

Recap: Laplace-Beltrami High-pass filter: extracts local surface detail ● Detail = smooth(surface) – surface ● Smoothing = averaging ● March 27, 2013 Olga Sorkine-Hornung # 21

Recap: Laplace-Beltrami The direction of i approximates the normal ● The size approximates the

Recap: Laplace-Beltrami The direction of i approximates the normal ● The size approximates the mean curvature ● March 27, 2013 Olga Sorkine-Hornung # 22

L-B: Weighting Schemes ● Ignore geometry uniform : Wi = 1, wij = 1/di

L-B: Weighting Schemes ● Ignore geometry uniform : Wi = 1, wij = 1/di ● Integrate over Voronoi region of the vertex n cotan : wij = 0. 5(cot aij + cot bij) aij Wi =Ai March 27, 2013 Olga Sorkine-Hornung # 23 bij

Laplacian Matrix ● The transition between xyz and is linear: March 27, 2013 L

Laplacian Matrix ● The transition between xyz and is linear: March 27, 2013 L x = x L y = y L z = z Olga Sorkine-Hornung # 24

Laplacian Matrix Breaking down the Laplace matrix: ● M = mass matrix; Lw =

Laplacian Matrix Breaking down the Laplace matrix: ● M = mass matrix; Lw = stiffness matrix ● L March 27, 2013 Olga Sorkine-Hornung = M– 1 # 25 Lw

Taubin Smoothing: Explicit Steps ● Iterate: ● > 0 to smooth; < 0 to

Taubin Smoothing: Explicit Steps ● Iterate: ● > 0 to smooth; < 0 to inflate ● Originally proposed with uniform Laplacian weights original 10 iterations 50 iterations 200 iterations A Signal Processing Approach to Fair Surface Design Gabriel Taubin ACM SIGGRAPH 95 March 27, 2013 Olga Sorkine-Hornung # 26

Taubin Smoothing: Explicit Steps ● ● Per-vertex iterations Simple to implement Requires many iterations

Taubin Smoothing: Explicit Steps ● ● Per-vertex iterations Simple to implement Requires many iterations ● Need to tweak μ and λ original 10 iterations 50 iterations 200 iterations ● A Signal Processing Approach to Fair Surface Design Gabriel Taubin ACM SIGGRAPH 95 March 27, 2013 Olga Sorkine-Hornung # 27

Example 0 iterations March 27, 2013 20 iterations 5 iterations Olga Sorkine-Hornung # 28

Example 0 iterations March 27, 2013 20 iterations 5 iterations Olga Sorkine-Hornung # 28

Mesh Independence ● Result of smoothing with uniform Laplacian depends on triangle density and

Mesh Independence ● Result of smoothing with uniform Laplacian depends on triangle density and shape § Why? ● Asymmetric results although underlying geometry is symmetric original March 27, 2013 uniform Olga Sorkine-Hornung cotan # 29

Mesh Independence ● Result of smoothing with uniform Laplacian depends on triangle density and

Mesh Independence ● Result of smoothing with uniform Laplacian depends on triangle density and shape § Why? ● Asymmetric results although underlying geometry is symmetric original March 27, 2013 uniform Olga Sorkine-Hornung cotan # 30

Implicit Fairing: Implicit Euler Steps ● In each iteration, solve for the smoothed x

Implicit Fairing: Implicit Euler Steps ● In each iteration, solve for the smoothed x : Implicit fairing of irregular meshes using diffusion and curvature flow M. Desbrun, M. Meyer, P. Schroeder, A. Barr ACM SIGGRAPH 99 March 27, 2013 Olga Sorkine-Hornung # 31

Smoothing as (mean curvature) Flow ● Model smoothing as a diffusion process ● Discretize

Smoothing as (mean curvature) Flow ● Model smoothing as a diffusion process ● Discretize in time, forward differences: March 27, 2013 Olga Sorkine-Hornung # 32

Smoothing as (mean curvature) Flow ● Model smoothing as a diffusion process ● Discretize

Smoothing as (mean curvature) Flow ● Model smoothing as a diffusion process ● Discretize in time, forward differences: Explicit integration Unstable unless time step dt is small March 27, 2013 Olga Sorkine-Hornung # 33

Smoothing as (mean curvature) Flow ● Model smoothing as a diffusion process ● Backward

Smoothing as (mean curvature) Flow ● Model smoothing as a diffusion process ● Backward Euler for unconditional stability March 27, 2013 Olga Sorkine-Hornung # 34

Implicit Fairing Implicit fairing of irregular meshes using diffusion and curvature flow M. Desbrun,

Implicit Fairing Implicit fairing of irregular meshes using diffusion and curvature flow M. Desbrun, M. Meyer, P. Schroeder, A. Barr ACM SIGGRAPH 99 March 27, 2013 Olga Sorkine-Hornung # 35

Implicit Fairing ● The importance of using the right weights Mean curvature Uniform (umbrella)

Implicit Fairing ● The importance of using the right weights Mean curvature Uniform (umbrella) March 27, 2013 Olga Sorkine-Hornung cotan # 36

Laplacian Mesh Optimization Smoothing, improving of triangle shapes ● Basic idea: formulate a “shopping

Laplacian Mesh Optimization Smoothing, improving of triangle shapes ● Basic idea: formulate a “shopping list”, solve with least squares ● Laplacian Mesh Optimization ACM GRAPHITE 2006 A. Nealen, T. Igarashi, O. Sorkine, M. Alexa March 27, 2013 Olga Sorkine-Hornung # 37

Laplacian Mesh Optimization Smoothing, improving of triangle shapes ● Basic idea: formulate a “shopping

Laplacian Mesh Optimization Smoothing, improving of triangle shapes ● Basic idea: formulate a “shopping list”, solve with least squares ● § § Smooth mesh: Lx = 0 Passes close to input data set: x = x Well-shaped triangles: Luni x = Lcot x The terms are weighted according to importance and geometry Laplacian Mesh Optimization ACM GRAPHITE 2006 A. Nealen, T. Igarashi, O. Sorkine, M. Alexa March 27, 2013 Olga Sorkine-Hornung # 38

Smoothing WL L x = WL 0 Lx = 0 WP X x =

Smoothing WL L x = WL 0 Lx = 0 WP X x = x n aij WP bij Mesh smoothing L = Lcot (outer fairness) or L = Luni (outer and inner fairness) ● Controlled by WP and WL (Intensity, Features) ● March 27, 2013 Olga Sorkine-Hornung # 39

Using WP original w = 0. 2 March 27, 2013 Olga Sorkine-Hornung w =

Using WP original w = 0. 2 March 27, 2013 Olga Sorkine-Hornung w = 0. 02 # 40

Using WP and WL test model with added noise without WL March 27, 2013

Using WP and WL test model with added noise without WL March 27, 2013 with WL Olga Sorkine-Hornung # 41

Triangle Shape Optimization L uni x = WP cot WP n x n Luni

Triangle Shape Optimization L uni x = WP cot WP n x n Luni x = Lcot x March 27, 2013 Olga Sorkine-Hornung # 42

Positional Weights March 27, 2013 Olga Sorkine-Hornung # 43

Positional Weights March 27, 2013 Olga Sorkine-Hornung # 43

Constant Weights March 27, 2013 Olga Sorkine-Hornung # 44

Constant Weights March 27, 2013 Olga Sorkine-Hornung # 44

Linear Weights March 27, 2013 Olga Sorkine-Hornung # 45

Linear Weights March 27, 2013 Olga Sorkine-Hornung # 45

CDF Weights March 27, 2013 Olga Sorkine-Hornung # 46

CDF Weights March 27, 2013 Olga Sorkine-Hornung # 46

Original March 27, 2013 Olga Sorkine-Hornung # 47

Original March 27, 2013 Olga Sorkine-Hornung # 47

Triangle Shape Optimization March 27, 2013 Olga Sorkine-Hornung # 48

Triangle Shape Optimization March 27, 2013 Olga Sorkine-Hornung # 48

Thank You March 27, 2013

Thank You March 27, 2013