surface simplification

Post on 02-Feb-2016

57 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

1

Dr. Scott Schaefer

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

3/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal

4/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal Edge Collapse

5/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal Edge Collapse Face Collapse, …

6/32

Reducing Polygons

Perform local, topological operations to reduce number of polygons

Vertex removal Edge Collapse Face Collapse, …

7/32

Surface Simplification

How do we determine the order of edge collapse operations?

Where do we place new vertex after collapse?

8/32

Error Metrics For Simplification

QEF: Quadratic Error Function Measures distance to infinite planes

v

ip

i

iii

ii dvnpvnvE 22)()(

in

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

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

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!!!

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)(

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!!!

14/32

Placement of Vertices Using QEFs

Place new vertex at minimum of error function

ii

iii

T

i

Tii

T

vddnvvnnvvE 22)(min

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

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

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!!!

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|

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

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

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

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

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

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

25/32

Surface Simplification: Edge Collapse

Place new vertex at minimizer of QEF

26/32

Surface Simplification: Edge Collapse

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

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

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

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

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

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

32/32

Surface Simplification

Extremely fast Somewhat memory intensive

Limits maximum surface size Greedy algorithm

Does not guarantee optimal sequence of edge collapses!!!

top related