+ All Categories
Home > Documents > CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

Date post: 04-Jan-2016
Category:
Upload: edwin-hill
View: 219 times
Download: 0 times
Share this document with a friend
30
CSE554 Simplification Slide 1 CSE 554 Lecture 7: Simplification Fall 2013
Transcript
Page 1: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

CSE554 Simplification Slide 1

CSE 554

Lecture 7: Simplification

CSE 554

Lecture 7: Simplification

Fall 2013

Page 2: CSE554SimplificationSlide 1 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

Page 3: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 4: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 5: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 6: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 7: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 8: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 9: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

CSE554 Simplification Slide 9

Simplification (2D)Simplification (2D)

• Representing the shape with fewer vertices (and edges)

200 vertices 50 vertices

Page 10: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

CSE554 Simplification Slide 10

Simplification (2D)Simplification (2D)

• If I want to replace two vertices with one, where should it be?

Page 11: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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:

Page 12: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 13: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 14: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 15: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 16: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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.

Page 17: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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.

Page 18: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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.

Page 19: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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.

Page 20: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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.

Page 21: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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.

Page 22: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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]

Page 23: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 24: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 25: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 26: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 27: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 28: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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

Page 29: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

CSE554 Simplification Slide 29

Simplification (3D)Simplification (3D)

• Example:

5600 vertices 500 vertices

Page 30: CSE554SimplificationSlide 1 CSE 554 Lecture 7: Simplification Fall 2013.

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


Recommended