Simplification

advertisement
CSE 554
Lecture 7: Simplification
Fall 2014
CSE554
Simplification
Slide 1
Geometry 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 2
Simplification (2D)
• Representing the shape with fewer vertices (and edges)
200 vertices
CSE554
50 vertices
Simplification
Slide 3
Simplification (2D)
• If I want to replace two vertices with one, where should it be?
CSE554
Simplification
Slide 4
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 5
Points and Vectors
• Same representation, but different
meanings and operations
Y
p
1, 2
p
2, 2
1,
v
– Points can add with vectors
– Points can add with points, only using
v
1,
2
– Vectors can add, scale
2
2
1
2
x
affine combination
n
n
wi pi
i 1
CSE554
p, where
wi
1
i 1
Simplification
Slide 6
More Vector Operations
• Dot product (in both 2D and 3D)
– Result is a scalar
v1
v2
v1
v2
Cos
v1
– In coordinates (simple!)
• 2D: v1
v2
v1x
• 3D: v1 v2
v1x
v2x
v2x
v1y
v1y
v2
v2y
v2y
v1z
v2z
• Matrix product between a row and a column vector
CSE554
Simplification
Slide 7
More Vector Operations
• Uses of dot products
– Angle between vectors:
ArcCos
v1
v1
• Orthogonal: v1
– Projected length of
h
v1
v2
v2
v2
v1
0
v2
v1 onto v2 :
v2
v1
v2
h
CSE554
Simplification
v2
Slide 8
More Vector Operations
• Cross product (only in 3D)
– Result is another 3D vector
• Direction: Normal to the plane where both vectors lie (right-hand rule)
• Magnitude:
v1
v2
v1
v2
v1
v1
v2
– In coordinates:
v2
v1 y v2 z
Sin
v1 z v 2 y , v 1 z v2 x
v 1 x v 2 z , v1 x v 2 y
v2
v1 y v2 x
v1
CSE554
Simplification
Slide 9
More Vector Operations
• Uses of cross products
– Getting the normal vector of the plane
Area
v1
v1 v2
v1
– Computing area of the triangle formed by
v2
• E.g., the normal of a triangle formed by v1 v2
v2
v2
2
• Testing if vectors are parallel:
v1
v2
0
v1
CSE554
Simplification
Slide 10
Properties
Dot Product
Distributive?
v
v
Commutative?
Associative?
CSE554
v1
v1
v1
v1
v2
v v2
v2
v2
v2
v1
v3
Simplification
Cross Product
v
v
v1
v1
v1
v2
v v2
v2
v2 v1
(Sign change!)
v1
v2 v 3
v1 v2
v3
Slide 11
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: p q
n
• Projection of vector (p-q) onto n
– This distance has a sign
p
n
• “Above” or “under” of the line
• We will use the distance squared
q
CSE554
Simplification
Slide 12
Simplification (2D)
• Closed point to multiple lines
– Sum of squared distances from p to all lines (Quadratic Error Metric, QEM)
• Input lines: q1, n1 , ..., q m , n m
m
QEM p
p
qi
ni
2
i 1
– 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
QEM p
p
CSE554
0
Simplification
Slide 13
Simplification (2D)
m
• Minimizing QEM
QEM p
px py
Row vector
p a pT
QEM p
qi
ni
2
i 1
– Writing QEM in matrix form
p
p
Matrix transpose
2p b
c
[Eq. 1]
Matrix (dot)
product
m
a
i 1
m
i 1
n i x ni x
n i x ni y
m
i 1
m
i 1
2x2 matrix
CSE554
m
ni x ni y
ni y ni y
b
i 1
m
i 1
nix ni
niy ni
qi
qi
1x2 column vector
Simplification
m
c
ni
qi
2
i 1
Scalar
Slide 14
Simplification (2D)
• Minimizing QEM
QEM p
p a pT
2p b
c
– Solving the zero-derivative equation:
QEM p
2 a pT
p
m
i 1
m
i 1
n i x ni x
n i x ni y
m
i 1
m
i 1
nix ni y
niy ni y
2b
0
a pT
b
[Eq. 2]
m
px
py
i 1
m
i 1
ni x n i
qi
ni y n i
qi
– A linear system with 2 equations and 2 unknowns (px,py)
• Using Gaussian elimination, or matrix inversion: pT
CSE554
Simplification
a
1
b
Slide 15
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 16
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 17
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 18
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)
• 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 20
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)
• 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)
p
– Used for edge selection in Step 2
• QEM coefficients (a, b, c)
– Used for fast update in Step 2
Stored at the edge:
a, b, c, p, QEM p
QEM p
CSE554
p a pT
2p b
Simplification
c [Eq. 1]
Slide 22
Simplification (2D)
a, b, c,
p, QEM p
• Step 2: Collapsing an edge
– Remove the edge and its vertices
a1 , b1 , c1 ,
p1 , QEM p1
a2 , b2 , c2 ,
p2 , QEM p2
– Re-connect two neighbor edges to
the minimizer of the removed edge
– For each re-connected edge:
Collapse
• Increment its coefficients by that of
the removed edge
– The coefficients are additive!
• Re-compute its minimizer and QEM
aa aa11,,
bb bb11,,
cc cc11,,
QEM pp11
pp11,, QEM
p
a a22,
b b22,
c c22,
p22, QEM p22
p1 , p2 : new minimizer
locations computed from
the updated coefficients
CSE554
Simplification
Slide 23
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 24
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: p q
n
• Projection of vector (p-q) onto n
– This distance has a sign
n
• “above” or “below” the plane
p
• We use its square
q
CSE554
Simplification
Slide 25
Simplification (3D)
• Closest point to multiple planes
– Input planes:
m
q1, n1 , ..., q m , n m
a
– QEM (same as in 2D)
i 1
m
i 1
m
p
qi
ni
2
• In matrix form: p
p a pT
i 1
m
b
i 1
QEM p
niy nix
i 1
mn
m
QEM p
nix nix
i 1
nix
i 1
m
nix niy
niy niy
i 1
mn
i 1
iz
niy
m
i 1
m
n ix ni z
n iy ni z
i 1
mn
i 1
iz
niz
nix ni
qi
3x3 matrix
niy ni
qi
1x3 column vector
ni
qi
i 1
mn
px py pz
2p b
iz
m
iz
m
c
c
ni
qi
2
Scalar
i 1
– Find p that minimizes QEM: a pT
b
• A linear system with 3 equations and 3 unknowns (px,py,pz)
CSE554
Simplification
Slide 26
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)
p
The supporting planes for all shaded
triangles should be considered when
computing the minimizer of the middle
edge.
CSE554
Simplification
Slide 27
Simplification (3D)
• Step 2: Collapsing an edge
Degenerate triangles
after collapse
– Remove the edge with least QEM
– Re-connect neighbor triangles and
edges to the minimizer of the
removed edge
• Remove “degenerate” triangles
Duplicate edges
after collapse
• Remove “duplicate” edges
Collapse
– For each re-connected edge:
• Increment its coefficients by that of
the removed edge
• Re-compute its minimizer and QEM
CSE554
Simplification
Slide 28
Simplification (3D)
• Example:
5600 vertices
CSE554
500 vertices
Simplification
Slide 29
Further 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
CSE554
Simplification
Slide 30
Download