140 likes | 267 Views
An Out-of-core Algorithm for Isosurface Topology Simplification. Zo ë Wood Hughes Hoppe Mathieu Desbrun Peter Schröder. Problem. NEARLY INVISIBLE HANDLES. Discretely represented surface. Reconstruction as “isosurface” f ( x , y , z ) = 0. NOISY. Bad for simplification,
E N D
An Out-of-core Algorithm for Isosurface Topology Simplification Zoë Wood Hughes Hoppe Mathieu Desbrun Peter Schröder
Problem NEARLY INVISIBLE HANDLES Discretely represented surface Reconstruction as “isosurface” f (x, y, z) = 0 NOISY Bad for simplification, parameterization, etc.
The Challenge SEPARATE Handles we want from Handles we don’t want
Solution Attempt • Find all handles • Calculate their sizes • Remove the “small enough” ones
The Input Isosurface computation Volumetric data in slices Isosurface as polygon mesh
Finding Handles Reeb graph Isosurface Handles Cycles in Reeb graph
Reeb Graphs Contours { Height function f(x, y, z) Slice Ribbons (parts of polygon mesh inside slice) CONNECTED COMPONENTS
Constructing Reeb Graphs REEB GRAPH A node for each contour A node for each ribbon An edge between each ribbon and its contours
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
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
Removing Handles Use the same loop we used to measure handle size! Before removing cross loop After removing cross loop
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.
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]