An Out-of-core Algorithm for Isosurface Topology Simplification

Preview:

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

Citation preview

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]

Recommended