an out-of-core algorithm for isosurface topology simplification
DESCRIPTION
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, - PowerPoint PPT PresentationTRANSCRIPT
An Out-of-core Algorithm for Isosurface Topology
Simplification
Zoë WoodHughes Hoppe
Mathieu DesbrunPeter Schröder
Problem
Discretelyrepresented
surface
Reconstructionas “isosurface”f (x, y, z) = 0
NOISY
NEARLYINVISIBLEHANDLES
Bad for simplification,parameterization, etc.
Buddha Handle
The Challenge
Handles we want Handles we don’t want
SEPARATE
from
Solution Attempt
1. Find all handles
2. Calculate their sizes
3. Remove the “small enough” ones
The Input
Isosurfacecomputation
Volumetricdata
in slices
Isosurfaceas
polygon mesh
Finding Handles
IsosurfaceReeb graph
Handles Cycles in Reeb graph
Reeb Graphs
Contours
Ribbons(parts of polygon mesh
inside slice)
{Slice
Height functionf(x, y, z)
CONNECTEDCOMPONENTS
Constructing Reeb Graphs
REEB GRAPHA node for each contourA 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 HandlesFor 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!
1. Find Reeb loop2. Find cross loop3. Size = length of smaller loop
Non-separating
Removing HandlesUse the same loop we used to
measure handle size!
Before removingcross loop
After removingcross loop
ResultsStill hard to tell which handlesare “small enough”.
Dragon has one handle of length 46,causing this method to fail.
Handles inside handles slow downthis method (Reeb graphs arerecomputed locally to check for this).
Uncontrollable jumps in loop sizesafter a collapse.
Also, very inefficient if orientationof surface is bad.
ConclusionPROBLEM
Removing undesired handles
SOLUTION ATTEMPT
1. Find handles2. Calculate their sizes3. Remove small enough ones
RESULTS
Doesn’t work if there is even onelarge extraneous handle
Can be very inefficient
FUTURE DIRECTIONS
1. Reeb graphs for arbitrary meshes,avoiding self-intersections
2. Smoothing after removing largehandles
3. New ways of measuring handlesize
4. Varying isosurface handleremoval: preprocess volume[Zomorodian 2001]