Title: Dr. Scott Schaefer
1Surface Simplification
2Surface 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
3Reducing Polygons
- Perform local, topological operations to reduce
number of polygons - Vertex removal
4Reducing Polygons
- Perform local, topological operations to reduce
number of polygons - Vertex removal
- Edge Collapse
5Reducing Polygons
- Perform local, topological operations to reduce
number of polygons - Vertex removal
- Edge Collapse
- Face Collapse,
6Reducing Polygons
- Perform local, topological operations to reduce
number of polygons - Vertex removal
- Edge Collapse
- Face Collapse,
7Surface Simplification
- How do we determine the order of edge collapse
operations? - Where do we place new vertex after collapse?
8Error Metrics For Simplification
- QEF Quadratic Error Function
- Measures distance to infinite planes
9Error Metrics For Simplification
- QEF Quadratic Error Function
- Measures distance to infinite planes
10Error Metrics For Simplification
- QEF Quadratic Error Function
- Measures distance to infinite planes
symmetric 3x3
3x1
1x1
11Error Metrics For Simplification
- QEF Quadratic Error Function
- Measures distance to infinite planes
symmetric 3x3
3x1
1x1
Requires 10 floats independent of number of
polygons!!!
12Combining QEFS
13Combining QEFS
Add 10 numbers to combine QEFs!!!
14Placement of Vertices Using QEFs
- Place new vertex at minimum of error function
15Placement of Vertices Using QEFs
- Place new vertex at minimum of error function
16Placement of Vertices Using QEFs
- Place new vertex at minimum of error function
17Placement of Vertices Using QEFs
- Place new vertex at minimum of error function
Not invertible in flat areas or straight edges!!!
18Placement of Vertices Using QEFs
- Place new vertex at minimum of error function
Pseudoinverse minimizes v
19Placement of Vertices Using QEFs
- Let where c is a point we want to
minimize the distance to
20Placement of Vertices Using QEFs
- Let where c is a point we want to
minimize the distance to
21Placement of Vertices Using QEFs
- Let where c is a point we want to
minimize the distance to
22Placement of Vertices Using QEFs
- Let where c is a point we want to
minimize the distance to
23Plane-Based Quadratic Error Function
- Compact representation (10 numbers)
- Fast to combine multiple functions (addition)
- Relatively easy to minimize (pseudoinverse)
- Suffers from numerical instabilities
24Surface 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 gt target
- Collapse edge
25Surface Simplification Edge Collapse
- Place new vertex at minimizer of QEF
26Surface Simplification Edge Collapse
- Place new vertex at minimizer of QEF
- QEF of new vertex is combined QEF
27Surface 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
28Surface 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
29Surface 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
30Surface 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
31Surface 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
32Surface Simplification
- Extremely fast
- Somewhat memory intensive
- Limits maximum surface size
- Greedy algorithm
- Does not guarantee optimal sequence of edge
collapses!!!