An Out-of-core Algorithm for Isosurface Topology Simplification

# An Out-of-core Algorithm for Isosurface Topology Simplification

Télécharger la présentation

## An Out-of-core Algorithm for Isosurface Topology Simplification

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
##### Presentation Transcript

1. An Out-of-core Algorithm for Isosurface Topology Simplification Zoë Wood Hughes Hoppe Mathieu Desbrun Peter Schröder

2. Problem NEARLY INVISIBLE HANDLES Discretely represented surface Reconstruction as “isosurface” f (x, y, z) = 0 NOISY Bad for simplification, parameterization, etc.

3. Buddha Handle

4. The Challenge SEPARATE Handles we want from Handles we don’t want

5. Solution Attempt • Find all handles • Calculate their sizes • Remove the “small enough” ones

6. The Input Isosurface computation Volumetric data in slices Isosurface as polygon mesh

7. Finding Handles Reeb graph Isosurface Handles Cycles in Reeb graph

8. Reeb Graphs Contours { Height function f(x, y, z) Slice Ribbons (parts of polygon mesh inside slice) CONNECTED COMPONENTS

9. Constructing Reeb Graphs REEB GRAPH A node for each contour A node for each ribbon An edge between each ribbon and its contours

10. Finding Cycles in Reeb Graphs When adding ribbon r: For each pair of contours (c1, c2) adjacent to r Report (c2, r) + (r, c1) + (shortest path c1→ c2) as cycle Intra-Ribbon Handles For each i: if Euler characteristic of slice i ≠ # cycles in Reeb graph, then slice i – 1 had a handle in it

11. Measuring Handle Size Fill in handle? Or pinch it open? Both contract loop to a point! Non-separating 1. Find Reeb loop 2. Find cross loop 3. Size = length of smaller loop

12. Removing Handles Use the same loop we used to measure handle size! Before removing cross loop After removing cross loop

13. Results Still hard to tell which handles are “small enough”. Dragon has one handle of length 46, causing this method to fail. Handles inside handles slow down this method (Reeb graphs are recomputed locally to check for this). Uncontrollable jumps in loop sizes after a collapse. Also, very inefficient if orientation of surface is bad.

14. Conclusion • PROBLEM • Removing undesired handles • SOLUTION ATTEMPT • Find handles • Calculate their sizes • Remove small enough ones • RESULTS • Doesn’t work if there is even one • large extraneous handle • Can be very inefficient • FUTURE DIRECTIONS • Reeb graphs for arbitrary meshes,avoiding self-intersections • Smoothing after removing largehandles • New ways of measuring handlesize • Varying isosurface handleremoval: preprocess volume[Zomorodian 2001]