Upload
basil-thornton
View
216
Download
0
Embed Size (px)
Citation preview
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
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