surface simplification

32
1 Dr. Scott Schaefer Surface Simplification

Upload: jenski

Post on 02-Feb-2016

57 views

Category:

Documents


0 download

DESCRIPTION

Surface Simplification. Dr. Scott Schaefer. Surface Simplification. Given a closed polygon model, reduce the number of polygons and maintain appearance of the shape. 5804 tris. 2500 tris. 1000 tris. 500 tris. Reducing Polygons. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Surface Simplification

1

Dr. Scott Schaefer

Surface Simplification

Page 2: Surface Simplification

2/32

Surface Simplification

Given a closed polygon model, reduce the number of polygons and maintain appearance of the shape

5804 tris 2500 tris 1000 tris 500 tris

Page 3: Surface Simplification

3/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal

Page 4: Surface Simplification

4/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal Edge Collapse

Page 5: Surface Simplification

5/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal Edge Collapse Face Collapse, …

Page 6: Surface Simplification

6/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal Edge Collapse Face Collapse, …

Page 7: Surface Simplification

7/32

Surface Simplification

How do we determine the order of edge collapse operations?

Where do we place new vertex after collapse?

Page 8: Surface Simplification

8/32

Error Metrics For Simplification

QEF: Quadratic Error Function Measures distance to infinite planes

v

ip

i

iii

ii dvnpvnvE 22)()(

in

Page 9: Surface Simplification

9/32

Error Metrics For Simplification

QEF: Quadratic Error Function Measures distance to infinite planes

v

ip

ii

iii

T

i

Tii

T ddnvvnnvvE 22)(

in

Page 10: Surface Simplification

10/32

Error Metrics For Simplification

QEF: Quadratic Error Function Measures distance to infinite planes

v

ip

ii

iii

T

i

Tii

T ddnvvnnvvE 22)(

insymmetric 3x3 3x1 1x1

Page 11: Surface Simplification

11/32

Error Metrics For Simplification

QEF: Quadratic Error Function Measures distance to infinite planes

v

ip

ii

iii

T

i

Tii

T ddnvvnnvvE 22)(

insymmetric 3x3 3x1 1x1

Requires 10 floats independent of number of polygons!!!

Page 12: Surface Simplification

12/32

Combining QEFS

1v

in

ip2vjp

ii

iii

T

i

Tii

T ddnvvnnvvE 21111 2)(

jj

jjj

T

j

Tjj

T ddnvvnnvvE 22222 2)(

Page 13: Surface Simplification

13/32

Combining QEFS

ii

iii

T

i

Tii

T ddnvvnnvvE 21111 2)(

1v

in

ip2vjp

jj

jjj

T

j

Tjj

T ddnvvnnvvE 22222 2)(

i jji

jjj

iii

T

i j

Tjj

Tii

T dddndnvvnnnnvvE 222)(

Add 10 numbers to combine QEFs!!!

Page 14: Surface Simplification

14/32

Placement of Vertices Using QEFs

Place new vertex at minimum of error function

ii

iii

T

i

Tii

T

vddnvvnnvvE 22)(min

Page 15: Surface Simplification

15/32

Placement of Vertices Using QEFs

Place new vertex at minimum of error function

ii

iii

T

i

Tii

T

vddnvvnnvvE 22)(min

022)(

iii

i

Tii dnvnn

v

vE

Page 16: Surface Simplification

16/32

Placement of Vertices Using QEFs

Place new vertex at minimum of error function

ii

iii

T

i

Tii

T

vddnvvnnvvE 22)(min

022)(

iii

i

Tii dnvnn

v

vE

iii

i

Tii dnnnv

1

Page 17: Surface Simplification

17/32

Placement of Vertices Using QEFs

Place new vertex at minimum of error function

ii

iii

T

i

Tii

T

vddnvvnnvvE 22)(min

022)(

iii

i

Tii dnvnn

v

vE

iii

i

Tii dnnnv

1

Not invertible in flat areas or straight edges!!!

Page 18: Surface Simplification

18/32

Placement of Vertices Using QEFs

Place new vertex at minimum of error function

ii

iii

T

i

Tii

T

vddnvvnnvvE 22)(min

iii

i

Tii dnnnv

Pseudoinverse minimizes |v|

Page 19: Surface Simplification

19/32

Placement of Vertices Using QEFs

Let where c is a point we want to minimize the distance to

ii

iii

T

i

Tii

T ddnccnncvE 2)(2)()()(min

cv

Page 20: Surface Simplification

20/32

Placement of Vertices Using QEFs

Let where c is a point we want to minimize the distance to

ii

iii

T

i

Tii

T ddnccnncvE 2)(2)()()(min

cv

02)(2)(

iii

i

Tii dncnn

vE

Page 21: Surface Simplification

21/32

Placement of Vertices Using QEFs

Let where c is a point we want to minimize the distance to

ii

iii

T

i

Tii

T ddnccnncvE 2)(2)()()(min

cv

02)(2)(

iii

i

Tii dncnn

vE

cnndnnni

Tii

iii

i

Tii

Page 22: Surface Simplification

22/32

Placement of Vertices Using QEFs

Let where c is a point we want to minimize the distance to

ii

iii

T

i

Tii

T ddnccnncvE 2)(2)()()(min

cv

02)(2)(

iii

i

Tii dncnn

vE

ccnndnnncvi

Tii

iii

i

Tii

Page 23: Surface Simplification

23/32

Plane-Based Quadratic Error Function

Compact representation (10 numbers) Fast to combine multiple functions (addition) Relatively easy to minimize (pseudoinverse)

Suffers from numerical instabilities

Page 24: Surface Simplification

24/32

Surface Simplification Algorithm

Build QEFs for each vertex For each edge

Compute combined QEF and error Insert edge into priority queue sorted by

error While poly # > target #

Collapse edge

Page 25: Surface Simplification

25/32

Surface Simplification: Edge Collapse

Place new vertex at minimizer of QEF

Page 26: Surface Simplification

26/32

Surface Simplification: Edge Collapse

Place new vertex at minimizer of QEF QEF of new vertex is combined QEF

Page 27: Surface Simplification

27/32

Surface Simplification: Edge Collapse

Place new vertex at minimizer of QEF QEF of new vertex is combined QEF Remove all edges touching collapsed edge

from priority queue

Page 28: Surface Simplification

28/32

Surface Simplification: Edge Collapse

Place new vertex at minimizer of QEF QEF of new vertex is combined QEF Remove all edges touching collapsed edge

from priority queue Recompute QEF/error for all edges touching

new vertex and insert into priority queue

Page 29: Surface Simplification

29/32

Surface Simplification: Edge Collapse

Edge collapse may alter topology of surface Test for topology change and exclude unsafe

edge collapses Unsafe edge may become safe after another

collapse Alternatively, perform two edge collapses

Page 30: Surface Simplification

30/32

Surface Simplification: Edge Collapse

Edge collapse may alter topology of surface Test for topology change and exclude unsafe

edge collapses Unsafe edge may become safe after another

collapse Alternatively, perform two edge collapses

unsafe edge collapses

Page 31: Surface Simplification

31/32

Surface Simplification: Edge Collapse

Edge collapse may alter topology of surface Test for topology change and exclude unsafe

edge collapses Unsafe edge may become safe after another

collapse Alternatively, perform two edge collapses

Page 32: Surface Simplification

32/32

Surface Simplification

Extremely fast Somewhat memory intensive

Limits maximum surface size Greedy algorithm

Does not guarantee optimal sequence of edge collapses!!!