Surface Simplification Dr Scott Schaefer 1 Surface Simplification

  • Slides: 35
Download presentation
Surface Simplification Dr. Scott Schaefer 1

Surface Simplification Dr. Scott Schaefer 1

Surface Simplification n Given a closed polygon model, reduce the number of polygons and

Surface Simplification n Given a closed polygon model, reduce the number of polygons and maintain appearance of the shape 5804 tris 2500 tris 1000 tris 500 tris 2/35

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal n 3/35

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal n Edge Collapse n 4/35

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal n Edge Collapse n Face Collapse, … n 5/35

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal

Reducing Polygons Perform local, topological operations to reduce number of polygons n Vertex removal n Edge Collapse n Face Collapse, … n 6/35

Surface Simplification How do we determine the order of edge collapse operations? n Where

Surface Simplification How do we determine the order of edge collapse operations? n Where do we place new vertex after collapse? n 7/35

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes n 8/35

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes n 9/35

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes n symmetric 3 x 3 3 x 1 10/35

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes

Error Metrics For Simplification QEF: Quadratic Error Function n Measures distance to infinite planes n symmetric 3 x 3 3 x 1 1 x 1 Requires 10 floats independent of number of polygons!!! 11/35

Combining QEFS 12/35

Combining QEFS 12/35

Combining QEFS Add 10 numbers to combine QEFs!!! 13/35

Combining QEFS Add 10 numbers to combine QEFs!!! 13/35

Placement of Vertices Using QEFs n Place new vertex at minimum of error function

Placement of Vertices Using QEFs n Place new vertex at minimum of error function 14/35

Placement of Vertices Using QEFs n Place new vertex at minimum of error function

Placement of Vertices Using QEFs n Place new vertex at minimum of error function 15/35

Placement of Vertices Using QEFs n Place new vertex at minimum of error function

Placement of Vertices Using QEFs n Place new vertex at minimum of error function 16/35

Placement of Vertices Using QEFs n Place new vertex at minimum of error function

Placement of Vertices Using QEFs n Place new vertex at minimum of error function Not invertible in flat areas or straight edges!!! 17/35

Placement of Vertices Using QEFs n Place new vertex at minimum of error function

Placement of Vertices Using QEFs n Place new vertex at minimum of error function Pseudoinverse minimizes |v| 18/35

Placement of Vertices Using QEFs n Let where c is a point we want

Placement of Vertices Using QEFs n Let where c is a point we want to minimize the distance to 19/35

Placement of Vertices Using QEFs n Let where c is a point we want

Placement of Vertices Using QEFs n Let where c is a point we want to minimize the distance to 20/35

Placement of Vertices Using QEFs n Let where c is a point we want

Placement of Vertices Using QEFs n Let where c is a point we want to minimize the distance to 21/35

Placement of Vertices Using QEFs n Let where c is a point we want

Placement of Vertices Using QEFs n Let where c is a point we want to minimize the distance to 22/35

Plane-Based Quadratic Error Function Compact representation (10 numbers) n Fast to combine multiple functions

Plane-Based Quadratic Error Function Compact representation (10 numbers) n Fast to combine multiple functions (addition) n Relatively easy to minimize (pseudoinverse) n n Suffers from numerical instabilities 23/35

Surface Simplification Algorithm Build QEFs for each vertex n For each edge u Compute

Surface Simplification Algorithm Build QEFs for each vertex n For each edge u Compute combined QEF and error u Insert edge into priority queue sorted by error n While poly # > target # u Collapse edge n 24/35

Surface Simplification: Edge Collapse n Place new vertex at minimizer of QEF 25/35

Surface Simplification: Edge Collapse n Place new vertex at minimizer of QEF 25/35

Surface Simplification: Edge Collapse Place new vertex at minimizer of QEF n QEF of

Surface Simplification: Edge Collapse Place new vertex at minimizer of QEF n QEF of new vertex is combined QEF n 26/35

Surface Simplification: Edge Collapse Place new vertex at minimizer of QEF n QEF of

Surface Simplification: Edge Collapse Place new vertex at minimizer of QEF n QEF of new vertex is combined QEF n Remove all edges touching collapsed edge from priority queue n 27/35

Surface Simplification: Edge Collapse Place new vertex at minimizer of QEF n QEF of

Surface Simplification: Edge Collapse Place new vertex at minimizer of QEF n QEF of new vertex is combined QEF n Remove all edges touching collapsed edge from priority queue n Recompute QEF/error for all edges touching new vertex and insert into priority queue n 28/35

Surface Simplification: Lazy Method Place new vertex at minimizer of QEF n QEF of

Surface Simplification: Lazy Method Place new vertex at minimizer of QEF n QEF of new vertex is combined QEF n Mark all edges touching collapsed edge as dirty n 29/35

Surface Simplification: Lazy Method Place new vertex at minimizer of QEF n QEF of

Surface Simplification: Lazy Method Place new vertex at minimizer of QEF n QEF of new vertex is combined QEF n Mark all edges touching collapsed edge as dirty n Mark edges to be removed as invalid n 30/35

Surface Simplification: Lazy Method Place new vertex at minimizer of QEF n QEF of

Surface Simplification: Lazy Method Place new vertex at minimizer of QEF n QEF of new vertex is combined QEF n Mark all edges touching collapsed edge as dirty n Mark edges to be removed as invalid n When removing an edge from the priority queue, throw away if invalid. If dirty, recompute QEF and insert into priority queue n 31/35

Surface Simplification: Edge Collapse Edge collapse may alter topology of surface n Test for

Surface Simplification: Edge Collapse Edge collapse may alter topology of surface n Test for topology change and exclude unsafe edge collapses n Unsafe edge may become safe after another collapse n Alternatively, perform two edge collapses n 32/35

Surface Simplification: Edge Collapse Edge collapse may alter topology of surface n Test for

Surface Simplification: Edge Collapse Edge collapse may alter topology of surface n Test for topology change and exclude unsafe edge collapses n Unsafe edge may become safe after another collapse n Alternatively, perform two edge collapses n unsafe edge collapses 33/35

Surface Simplification: Edge Collapse Edge collapse may alter topology of surface n Test for

Surface Simplification: Edge Collapse Edge collapse may alter topology of surface n Test for topology change and exclude unsafe edge collapses n Unsafe edge may become safe after another collapse n Alternatively, perform two edge collapses n 34/35

Surface Simplification Extremely fast n Somewhat memory intensive u Limits maximum surface size n

Surface Simplification Extremely fast n Somewhat memory intensive u Limits maximum surface size n Greedy algorithm u Does not guarantee optimal sequence of edge collapses!!! n 35/35