Lecture 22: Laplacian Mesh Editing COMPSCI/MATH 290-04 Chris Tralie, Duke University 4/5/2016 COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Announcements ⊲ First project milestone Monday 4/11/2016 ⊲ First milestone 20% ⊲ Group Assignment 3 Out This Week COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Table of Contents ◮ Mesh Editing Overview / Discrete Curvature ⊲ Laplacian Mesh Editing COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Mesh Editing Overview COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Mesh Editing Overview COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Mesh Editing Overview This is not what we want! COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Mesh Editing Overview COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Mesh Editing Overview This is much better! Preserve relative information about points to neighbors COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Parameterized Curves / Curvature Curvature κ is 1 r , where r is radius of osculating circle COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Parameterized Curves / Curvature Curvature κ is 1 r , where r is radius of osculating circle Curvature can also be considered as a vector κ� n COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Parameterized Curves / Curvature γ ( t ) = ( x ( t ) , y ( t )) Velocity � dx ( t ) � , dy ( t ) γ ′ ( t ) = dt dt COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Parameterized Curves / Curvature γ ( t ) = ( x ( t ) , y ( t )) Velocity � dx ( t ) � , dy ( t ) γ ′ ( t ) = dt dt Assume parameterized by arc length ; that is, curve moving at a unit speed. In other words γ ′ ( t ) · γ ′ ( t ) = 1 COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Parameterized Curves / Curvature γ ( t ) = ( x ( t ) , y ( t )) Velocity � dx ( t ) � , dy ( t ) γ ′ ( t ) = dt dt Assume parameterized by arc length ; that is, curve moving at a unit speed. In other words γ ′ ( t ) · γ ′ ( t ) = 1 Differentiate both sides with respect to t , use product rule, end up with 2 γ ′′ ( t ) · γ ′ ( t ) = 0 = ⇒ γ ′′ ( t ) ⊥ γ ′ ( t ) γ ′′ ( t ) = κ � n ( t ) is the curvature vector COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Discrete Curvature i+1 i i-1 v i Derivative at point i (velocity vector) is approximately � v i = � x i − � x i − 1 COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Discrete Curvature i+1 n i i i-1 Derivative at point i (velocity vector) is approximately � v i = � x i − � x i − 1 Second derivative (curvature vector) is approximately n i = � v i + 1 − � � v i = x i + 1 − � � x i − ( � x i − � x i − 1 ) = − 2 � x i + � x i − 1 + � x i + 1 COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Curvature of Surfaces Cut surface with plane, look at curvature of curve going through point Courtesy of Keenan Crane, Discrete Differential Geometry: An Applied Introduction COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Discrete Mean Curvature Approximation Still just a difference of a point with its neighbors! Convention is negative the curvature vector: − H ( v i ) � n i , where H ( v i ) is the mean curvature Example with curvature Example with flat (more details in a moment) COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Table of Contents ⊲ Mesh Editing Overview / Discrete Curvature ◮ Laplacian Mesh Editing COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Matrix Sorkine05 − 1 edge connecting i and j L ij = degree ( i ) i = j 0 otherwise COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Graph Laplacian More generally, L = D − A ⊲ A : “Adjacency matrix” � 1 � edge connecting i and j A ij 0 otherwise ⊲ D : “Degree matrix” � � degree ( i ) = � N i = j j = 1 A ij D ij = 0 otherwise L is symmetric and sparse . Number of nonzero entries is O ( N ) for meshes of constant genus COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing � � δ i = ( v i − v j ) = d i v i − v j j ∈ N ( i ) j ∈ N ( i ) Can be written as Lv = δ . Each vector is along a row now v1x v1y δ 1z v1z δ 1x δ 1y v2y v2x v2z δ 2x δ 2z δ 2y L = v3x v3y v3z δ 2z δ 2x δ 2y . . . . . . . . . . . . . . . . . . vNy vNx vNz δ 2x δ 2z δ 2y COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing � δ i = ( v i − v j ) j ∈ N ( i ) Can we reconstruct v from δ ? v1y v1x v1z δ 1z δ 1x δ 1y v2x v2y v2z δ 2z δ 2x δ 2y L = v3x v3y δ 2z v3z δ 2x δ 2y . . . . . . . . . . . . . . . . . . vNx vNy vNz δ 2z δ 2x δ 2y COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing � δ i = ( v i − v j ) j ∈ N ( i ) Can we reconstruct v from δ ? No: L is rank N − 1 for a connected mesh v1y v1x v1z δ 1z δ 1x δ 1y v2x v2y v2z δ 2z δ 2x δ 2y L = v3x v3y δ 2z v3z δ 2x δ 2y . . . . . . . . . . . . . . . . . . vNx vNy vNz δ 2z δ 2x δ 2y COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Anchors � δ i = ( v i − v j ) j ∈ N ( i ) fi x Delta coordinates define ge- ometry up to a translation . Fix a point v a , fix translation v1x v1y v1z δ 1z δ 1x δ 1y v2x v2y δ 2z v2z δ 2x δ 2y L = v3y v3x v3z δ 2x δ 2y δ 2z . . . . . . va . . . . . . . . . . vNx vNy vNz δ 2z δ 2x δ 2y a ( 000 .... w .... 000 ) w xa a COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Anchors Can add more anchors, but may not be a solution fi x x a edit x b v1y v1x v1z δ 1x δ 1y δ 1z v2x v2y v2z δ 2x δ 2y δ 2z v3x v3y v3z δ 2x δ 2z δ 2y L . . . = . . . vb . . . . . . . . . . va . . . . . . . . . . . . vNx vNy δ 2z vNz δ 2x δ 2y ( 000 .... w .... 000 ) w xa a a ( ) w xb b 00...w ........ 0000 b COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Anchors Can add more anchors, but may not be a solution Solve in the least squares sense fi x x a k � v = argmin v || Lv − δ || 2 w s || v s − x s || 2 � 2 + 2 s = 1 edit x b v1y v1x v1z δ 1x δ 1y δ 1z v2x v2y v2z δ 2x δ 2y δ 2z v3x v3y v3z δ 2x δ 2z δ 2y L . . . = . . . vb . . . . . . . . . . va . . . . . . . . . . . . vNx vNy δ 2z vNz δ 2x δ 2y ( 000 .... w .... 000 ) w xa a a ( ) w xb b 00...w ........ 0000 b COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Anchors: Another Example COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Anchors k � v = argmin v || Lx − δ || 2 w s || x s − v s || 2 � 2 + 2 s = 1 COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Anchors k � v = argmin v || Lx − δ || 2 w s || x s − v s || 2 � 2 + 2 s = 1 ⊲ Let L be L augmented with the anchor rows ⊲ Let δ be δ augmented with the weighted anchor coordinates Can all be written in matrix form Squared Error: ǫ ( v ) = || Lv − δ || 2 2 Least Squares Solution: v ∗ = ( L T L ) − 1 L T δ COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Examples COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Examples COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Examples COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Examples COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
What About Irregular Meshes? Homer’s upper arm COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Cotangent Weights β ij i j α ij � δ i = w ij ( v i − v j ) j ∈ N ( i ) w ij = 1 2 ( cot ( β ij ) + cot ( α ij )) COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Cotangent Weights β ij i j α ij � δ i = w ij ( v i − v j ) j ∈ N ( i ) Figure: Nealen2006, umbrella vs cotangent w ij = 1 2 ( cot ( β ij ) + cot ( α ij )) COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Cotangent Weights: Mean Curvature Mean curvature is approximated by � 1 ( cot ( β ij ) + cot ( α ij )) || � v i − � v j || 2 2 j ∈ N ( i ) COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Umbrella vs Cotangent Figure: umbrella COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Umbrella vs Cotangent Figure: cotangent Figure: umbrella COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Umbrella vs Cotangent Figure: umbrella COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Laplacian Mesh Editing: Umbrella vs Cotangent Figure: umbrella Figure: cotangent COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Applications: Function Interpolation COMPSCI/MATH 290-04 Lecture 22: Laplacian Mesh Editing
Recommend
More recommend