Upload
edwin-hill
View
222
Download
0
Embed Size (px)
Citation preview
CSE554 Simplification Slide 1
CSE 554
Lecture 7: Simplification
CSE 554
Lecture 7: Simplification
Fall 2013
CSE554 Simplification Slide 2
Geometry ProcessingGeometry Processing
• Fairing (smoothing)
– Relocating vertices to achieve a smoother appearance
– Method: centroid averaging
• Simplification
– Reducing vertex count
• Deformation
– Relocating vertices guided by user interaction or to fit onto a target
CSE554 Simplification Slide 3
Points and VectorsPoints and Vectors
• Same representation, but different meanings and operations
– Vectors can add, scale
– Points can add with vectors
– Points can add with points, only using affine combination
x
Y
1
2
2
p 1, 2 p 2, 2
v
1, 2v
1, 2
ni1
wi pi p, where ni1
wi 1
CSE554 Simplification Slide 4
• Dot product (in both 2D and 3D)
– Result is a scalar
– In coordinates (simple!)
• 2D:
• 3D:
• Matrix product between a row and a column vector
More Vector OperationsMore Vector Operations
v1
v2
v1 v2 v1x v2x v1y v2y v1z v2z
v1 v2 v1 v2 Cosv1 v2 v1x v2x v1y v2y
CSE554 Simplification Slide 5
• Uses of dot products
– Angle between vectors:
• Orthogonal:
– Projected length of onto :
More Vector OperationsMore Vector Operations
v1
v2
v1
v2h
v1 v2
ArcCos v1 v2
v1 v2
v1 v2 0
h v1 v2
v2
CSE554 Simplification Slide 6
• Cross product (only in 3D)
– Result is another 3D vector
• Direction: Normal to the plane where both vectors lie (right-hand rule)
• Magnitude:
– In coordinates:
More Vector OperationsMore Vector Operations
v1
v2
v1 v2 v1 v2 Sinv1 v2
v1y v2z v1z v2y, v1z v2x v1x v2z, v1x v2y v1y v2x v1v2
CSE554 Simplification Slide 7
More Vector OperationsMore Vector Operations
• Uses of cross products
– Getting the normal vector of the plane
• E.g., the normal of a triangle formed by
– Computing area of the triangle formed by
• Testing if vectors are parallel:
v1v2
v1v2
v1
v2Area v1 v2
2
v1 v2 0
v1v2
CSE554 Simplification Slide 8
More Vector OperationsMore Vector Operations
Dot Product Cross Product
Distributive?
Commutative?
Associative?
(Sign change!)
v v1 v2 v v1 v v2
v v1 v2 v v1 v v2
v1 v2 v2 v1 v1 v2 v2 v1
v1 v2 v3 v1 v2 v3v1 v2 v3
CSE554 Simplification Slide 9
Simplification (2D)Simplification (2D)
• Representing the shape with fewer vertices (and edges)
200 vertices 50 vertices
CSE554 Simplification Slide 10
Simplification (2D)Simplification (2D)
• If I want to replace two vertices with one, where should it be?
CSE554 Simplification Slide 11
Simplification (2D)Simplification (2D)
• If I want to replace two vertices with one, where should it be?
– Shortest distances to the supporting lines of involved edges
After replacement:
CSE554 Simplification Slide 12
Simplification (2D)Simplification (2D)
• Distance to a line
– Line represented as a point q on the line, and a perpendicular unit vector (the normal) n
• To get n: take a vector {x,y} along the line, n is {-y,x} followed by normalization
– Distance from any point p to the line:
• Projection of vector (p-q) onto n
– This distance has a sign
• “Above” or “under” of the line
• We will use the distance squared
p q n
q
n p
Line
CSE554 Simplification Slide 13
Simplification (2D)Simplification (2D)
• Closed point to multiple lines
– Sum of squared distances from p to all lines (Quadratic Error Metric, QEM)
• Input lines:
– We want to find the p with the minimum QEM
• Since QEM is a convex quadratic function of p, the minimizing p is where the derivative of QEM is zero, which is a linear equation
QEMp i1
m p qi ni 2 q1, n1, ..., qm, nm
QEMp p
0
CSE554 Simplification Slide 14
Simplification (2D)Simplification (2D)
• Minimizing QEM
– Writing QEM in matrix form
2x2 matrix 1x2 column vector Scalar
a
mi1
nix nix mi1
nix niy mi1
nix niy mi1
niy niyb
mi1
nix ni qi mi1
niy ni qi c mi1
ni qi2
p px py QEMp p a pT 2 p b c [Eq. 1]
Matrix (dot) product
Row vectorMatrix transpose
QEMp i1
m p qi ni 2QEMp i1
m p qi ni 2
CSE554 Simplification Slide 15
Simplification (2D)Simplification (2D)
• Minimizing QEM
– Solving the zero-derivative equation:
– A linear system with 2 equations and 2 unknowns (px,py)
• Using Gaussian elimination, or matrix inversion:
QEMp p
2 a pT 2 b 0
a pT b m
i1nix nix m
i1nix niy m
i1nix niy m
i1niy niy
pxpy
m
i1nix ni qi m
i1niy ni qi
[Eq. 2]
pT a1 b
QEMp p a pT 2 p b cQEMp p a pT 2 p b c
CSE554 Simplification Slide 16
Simplification (2D)Simplification (2D)
• What vertices to merge first?
– Pick the ones that lie on “flat” regions, or whose replacing vertex introduces least QEM error.
CSE554 Simplification Slide 17
Simplification (2D)Simplification (2D)
• The algorithm
– Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location.
• Store that location (called minimizer) and its QEM with the edge.
CSE554 Simplification Slide 18
Simplification (2D)Simplification (2D)
• The algorithm
– Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location.
• Store that location (called minimizer) and its QEM with the edge.
– Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer.
• Update the minimizers and QEMs of the re-connected edges.
CSE554 Simplification Slide 19
Simplification (2D)Simplification (2D)
• The algorithm
– Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location.
• Store that location (called minimizer) and its QEM with the edge.
– Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer.
• Update the minimizers and QEMs of the re-connected edges.
CSE554 Simplification Slide 20
Simplification (2D)Simplification (2D)
• The algorithm
– Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location.
• Store that location (called minimizer) and its QEM with the edge.
– Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer.
• Update the minimizers and QEMs of the re-connected edges.
– Step 3: Repeat step 2, until a desired number of vertices is left.
CSE554 Simplification Slide 21
Simplification (2D)Simplification (2D)
• The algorithm
– Step 1: For each edge, compute the best vertex location to replace that edge, and the QEM at that location.
• Store that location (called minimizer) and its QEM with the edge.
– Step 2: Pick the edge with the lowest QEM and collapse it to its minimizer.
• Update the minimizers and QEMs of the re-connected edges.
– Step 3: Repeat step 2, until a desired number of vertices is left.
CSE554 Simplification Slide 22
Simplification (2D)Simplification (2D)
• Step 1: Computing minimizer and QEM on an edge
– Consider supporting lines of this edge and adjacent edges
– Compute and store at the edge:
• The minimizing location p (Eq. 2)
• QEM (substitute p into Eq. 1)
– Used for edge selection in Step 2
• QEM coefficients (a, b, c)
– Used for fast update in Step 2Stored at the edge:
p
a, b, c, p, QEMpQEMp p a pT 2 p b cQEMp p a pT 2 p b c [Eq. 1]
CSE554 Simplification Slide 23
Simplification (2D)Simplification (2D)
• Step 2: Collapsing an edge
– Remove the edge and its vertices
– Re-connect two neighbor edges to the minimizer of the removed edge
– For each re-connected edge:
• Increment its coefficients by that of the removed edge
– The coefficients are additive!
• Re-compute its minimizer and QEM
a, b, c,
p, QEMp a1, b1, c1,
p1, QEMp1 a2, b2, c2,
p2, QEMp2
p
a a1,b b1,c c1,p1, QEMp1
a a2,b b2,c c2,p2, QEMp2
Collapse
: new minimizer locations computed from the updated coefficients
p1, p2
CSE554 Simplification Slide 24
Simplification (3D)Simplification (3D)
• The algorithm is similar to 2D
– Replace two edge-adjacent vertices by one vertex
• Placing new vertices closest to supporting planes of adjacent triangles
– Prioritize collapses based on QEM
CSE554 Simplification Slide 25
Simplification (3D)Simplification (3D)
• Distance to a plane (similar to the line case)
– Plane represented as a point q on the plane, and a unit normal vector n
• For a triangle: n is the cross-product of two edge vectors
– Distance from any point p to the plane:
• Projection of vector (p-q) onto n
– This distance has a sign
• “above” or “below” the plane
• We use its square
p q n
q
np
CSE554 Simplification Slide 26
Simplification (3D)Simplification (3D)
• Closest point to multiple planes
– Input planes:
– QEM (same as in 2D)
• In matrix form:
– Find p that minimizes QEM:
• A linear system with 3 equations and 3 unknowns (px,py,pz)
QEMp p a pT 2 p b c
p px py pz q1, n1, ..., qm, nm
3x3 matrix
1x3 column vector
Scalar
a
m
i1nix nix m
i1nix niy m
i1nix niz m
i1niy nix m
i1niy niy m
i1niy niz m
i1niz nix m
i1niz niy m
i1niz niz
b
m
i1nix ni qi m
i1niy ni qi m
i1niz ni qi
c mi1
ni qi2a pT b
QEMp i1
m p qi ni 2
CSE554 Simplification Slide 27
Simplification (3D)Simplification (3D)
• Step 1: Computing minimizer and QEM on an edge
– Consider supporting planes of all triangles adjacent to the edge
– Compute and store at the edge:
• The minimizing location p
• QEM[p]
• QEM coefficients (a, b, c)
The supporting planes for all shaded triangles should be considered when computing the minimizer of the middle edge.
p
CSE554 Simplification Slide 28
Simplification (3D)Simplification (3D)
• Step 2: Collapsing an edge
– Remove the edge with least QEM
– Re-connect neighbor triangles and edges to the minimizer of the removed edge
• Remove “degenerate” triangles
• Remove “duplicate” edges
– For each re-connected edge:
• Increment its coefficients by that of the removed edge
• Re-compute its minimizer and QEM
Collapse
Degenerate triangles after collapse
Duplicate edges after collapse
CSE554 Simplification Slide 29
Simplification (3D)Simplification (3D)
• Example:
5600 vertices 500 vertices
CSE554 Simplification Slide 30
Further ReadingsFurther Readings
• Fairing:
– “A signal processing approach to fair surface design”, by G. Taubin (1995)
• No-shrinking centroid-averaging
• Google citations > 1000
• Simplification:
– “Surface simplification using quadric error metrics”, by M. Garland and P. Heckbert (1997)
• Edge-collapse simplification
• Google citations > 2000