An Out-of-core Algorithm for Isosurface Topology Simplification
description
Transcript of An Out-of-core Algorithm for Isosurface Topology Simplification
![Page 1: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/1.jpg)
An Out-of-core Algorithm for Isosurface Topology
Simplification
Zoë WoodHughes Hoppe
Mathieu DesbrunPeter Schröder
![Page 2: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/2.jpg)
Problem
Discretelyrepresented
surface
Reconstructionas “isosurface”f (x, y, z) = 0
NOISY
NEARLYINVISIBLEHANDLES
Bad for simplification,parameterization, etc.
![Page 3: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/3.jpg)
Buddha Handle
![Page 4: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/4.jpg)
The Challenge
Handles we want Handles we don’t want
SEPARATE
from
![Page 5: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/5.jpg)
Solution Attempt
1. Find all handles
2. Calculate their sizes
3. Remove the “small enough” ones
![Page 6: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/6.jpg)
The Input
Isosurfacecomputation
Volumetricdata
in slices
Isosurfaceas
polygon mesh
![Page 7: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/7.jpg)
Finding Handles
IsosurfaceReeb graph
Handles Cycles in Reeb graph
![Page 8: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/8.jpg)
Reeb Graphs
Contours
Ribbons(parts of polygon mesh
inside slice)
{Slice
Height functionf(x, y, z)
CONNECTEDCOMPONENTS
![Page 9: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/9.jpg)
Constructing Reeb Graphs
REEB GRAPHA node for each contourA node for each ribbon
An edge between each ribbon and its contours
![Page 10: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/10.jpg)
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
![Page 11: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/11.jpg)
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
![Page 12: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/12.jpg)
Removing HandlesUse the same loop we used to
measure handle size!
Before removingcross loop
After removingcross loop
![Page 13: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/13.jpg)
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.
![Page 14: An Out-of-core Algorithm for Isosurface Topology Simplification](https://reader035.fdocuments.in/reader035/viewer/2022081514/56816842550346895dde1575/html5/thumbnails/14.jpg)
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]