Title: Isosurface Extractions II
1Isosurface Extractions (II)
3D Isosurface
2D Isocontour
2Contour Propagation
Basic Idea Given an initial cell that contains
isosurface, the remainder of the isosurface can
be found by propagation
Initial cell A Enqueue B, C Dequeue
B Enqueue D Until the FIFO queue becomes
empty
Breadth-First Search
3Challenges
Need to know the initial cells!
The Key Problem For any given isovalue C, we
need to find the initial cells (seed calls) to
start the propagation
4Solutions
- Extrema Graph (Itoh vis95)
- Seed Sets (Bajaj volvis96)
Problem Statement Given a scalar field with a
cell set G, find a subset S G, such that for
any given isovalue C, the set S contains initial
cells to start the propagation. We need search
through S for an arbitrary, but S is usuall much
smaller than G.
We will talk about extrema graph
5Extrema Graph
- The main idea
- There is at least one extreme point (local min or
max) inside a closed isosurface, unless there is
no interior point inside the isosurface - There is at least one boundary cell intersected
by an open isosurface -
6Extrema Graph
- Idea 1 the arcs connect the extrema points will
intersect all isocontours (except the open ones) - Idea 2 the open isocontours will intersect with
boundary cells
7Seed Set Finding
- Processing the data with the following 3 steps
- Extraction of extreme points
- Construction of an extrema graph
- Arcs that connect extreme points
- Collection of boundary cells
8Extreme Point
- Definition An extreme point is a grid point
whose scalar value is maximum or minimum in all
cells that share the grid point
0
4
3
O(N) to find Extreme points Need to visit all
cells
13
8
7
11
9
5
11
Not a exteme point
extreme point
9Constructing Extreme Graph
E2
E1
Extreme Graph E, A E extrema points
A Arcs conneccts E
a1
a2
a3
E3
E4
a5
An arc consists of cells that connect extrema
points (we also store min/max of the arc)
a4
E7
a7
E5
a6
E6
E8
10Construct Extreme Graph
- You want to minimize the number of cells included
in the arcs - Generating straight lines between close extreme
points - Polygonal cell traversal
(1)
(2)
11Boundary Cells
- Only the extrema graph is not enough
Some open isocontours will not intersect with
extreme graph arcs
Include all Boundary Cells!!
12Extract Isosurfaces
- Algorithm
- Given an isovalue
- Search the arcs of the extrema graph (to find the
arcs that have min/max contains the isovalue - Walk through the cells along each of the arcs to
find the seed cells - Start to propagate from the seed cells
- Search the cells along the boundary and find seed
cells from there - Propagate open isocontours
13Better Algorithm Needed
- The above algorithm has the following problems
- Processing cost is in proportion to the number of
extreme points, which can be large - There can be a large number of boundary cells
14Extreme Skeleton
- Extreme Skeleton A set of cells that connects
all extreme points while intersecting with all
disjoint parts of isosurfaces (including open
isosurfaces) - Based on a Volume Thinning algorithm
Volume thinning
Image thining
15Volume Thinning
- Start from the entire volume cells (default seed
set) - Eliminating cells that will not affect the
connectivity of its adjacent cells - Never eliminate cells that touch extreme points
- Topology preserving (considering voids or through
holes)
16Volume Thinning
17Algorithm
- Classify each cell as c0, c1, c2, c3, c4 (assume
tetrahedral cells) C0 means eliminated cells,
and Ci means there are I adjacent non-eliminated
cells - Start to eliminate c1 cells, then c2, c3 based on
certain criteria - Every time a cell is eliminated, update the
adjacent cells from Ci to Ci-1 - Loop until no more cells can be eliminated
18Criteria for Elimination
- We can certainly eliminate C1 cells
- C2 cells we try to see whether we can propagate
from Ci to Cj (the adjacent cells) without going
through Ck (the cell in question)
19Criteria for Elimination
- C3 cells Dont want eliminate cells on the
boundary of void or through-hole that will break
the connectivity of adjacent cells
20Criteria for Elimination
Also, remember to remove cells that form bubbles
21Prick the bubbles
22Example of Thinning