An Out-of-core Algorithm for Isosurface Topology Simplification

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

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 Presentation

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

Page 1: An Out-of-core Algorithm for Isosurface Topology Simplification

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

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

Buddha Handle

Page 4: An Out-of-core Algorithm for Isosurface Topology Simplification

The Challenge

Handles we want Handles we don’t want

SEPARATE

from

Page 5: An Out-of-core Algorithm for Isosurface Topology Simplification

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

The Input

Isosurfacecomputation

Volumetricdata

in slices

Isosurfaceas

polygon mesh

Page 7: An Out-of-core Algorithm for Isosurface Topology Simplification

Finding Handles

IsosurfaceReeb graph

Handles Cycles in Reeb graph

Page 8: An Out-of-core Algorithm for Isosurface Topology Simplification

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

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

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

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

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

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

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]