1 / 14

An Out-of-core Algorithm for Isosurface Topology Simplification

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,

herman
Télécharger la présentation

An Out-of-core Algorithm for Isosurface Topology Simplification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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]

More Related