Title: Isosurface Extractions
1Isosurface Extractions
3D Isosurface
2D Isocontour
2Isosurface cell search
- Isosurfaec cells cells that contain isosurface.
- min lt isovalue lt max
-
- Marching cubes algorithm performs a linear search
to locate the isosurface cells not very
efficient for large-scale data sets.
3Isosurface Cells
- For a given isovalue, only a smaller portion of
cells are isosurface cell. - For a volume with
- n x n x n cells, the
- average number of the
- isosurface cells is nxn
- (ratio of surface v.s. volume)
n
n
n
4Efficient isosurface cell search
- Problem statement
- Given a scalar field with N cells, c1, c2, ,
- cn, with min-max ranges (a1,b1), (a2,b2), ,
- (an, bn)
- Find Ck ak lt C lt bk Cisovalue
5Efficient search methods
- Spatial subdivision (domain search)
- Value subdivision (range search)
- Contour propagation
6Domain search
- Subdivide the space into several subdomains,
check the min/max values for each subdomain - If the min/max values (extreme values) do not
contain the isovalue, we skip the entire region
Min/max
Complexity O(Klog(n/k))
7Range Search (1)
Subdivide the cells based on their min/max ranges
Global minimum
Global maximum
Hierarchically subdivide the cells based on their
min/max ranges
Isovalue
8Range Search (2)
Within each subinterval, there are more than one
cells To further improve the search speed, we
sort them. Sort by what ?
G1
G2
Isosurface cells G1 G2
9Range Search (3)
A clean range subdivision is difficult
Difficult to get an optimal speed
?
10Range Search (4)
Span Space Instead of treating each cell as a
range, we can treat it as a 2D point at (min,
max) This space consists of min and max axes is
called span space
Any problem here?
11Span Space
What are the isosurface cells?
max
How to search them?
min
C
12Span Space Search (1)
With the point representation, subdividing the
space is much easier now. Search method 1
K-D tree subdivision (NOISE algorithm)
- K-d tree
- A multi-dimensional version of binary tree
- Partition the data by alternating between each
- each of the dimensions at each level of the
tree -
13NOISE Algorithm (K-d tree)
Median point
Min
Construction
Max
left
right
?
max
up
down
One node per cell
min
14NOISE Algorithm (Query)
Median point
Min
- If ( isovalue lt root.min )
- check the ?? Subtree
- If (isovalue gt root.min)
- Check the ?? Subtree
- Dont forget to check the
- root s interval as well.
Max
left
right
?
up
down
15Span Space Search (2)
Search Method (2) ISSUE
Complexity ?
16Back to Range Search
Sort all the data points (x1,x2,x3,x4,. ,
xn) Let d x (mid point)
Interval Tree
n/2
We use d to divide the cells into three sets
Id, I left, and I right Id cells that have
min lt d lt max I left cells that have
max lt d I right cells that have min gt d
17Interval Tree
- Now, given an isovalue C
- If C lt d
- If C gt d
- 3) If C d
Complexity O(log(n)k) Optimal!!
Id cells that have min lt d lt max I
left cells that have max lt d I right cells
that have min gt d
18Range Search Methods
In general, range search methods all are
superfast two order of magnitude faster than
the marching cubes algorithm in terms of cell
search But they all suffer a common problem
Excessive extra memory requirement!!!
19Contour 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
Breadth-First Search
20Challenges
Need to know the initial cells!
For any given isovalue C, finding the initial
cells to start the propagation is almost as hard
as finding the isosurface cells. You could do
a global search, but
21Solutions
- 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, but S is usually (hopefully) much
smaller than G.
We will only talk about extrema graph due to time
constraint
22Extrema Graph (1)
23Extrema Graph (2)
Basic Idea If we find all the local minimum
and maximum points (Extrema), and connect them
together by straight lines (Arcs), then any
closed isocontour is intersect by at leat one of
the arcs.
24Extrema Graph (3)
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 only store min/max of the arc though)
a4
E7
a7
E5
a6
E6
E8
25Extrema Graph (4)
- 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
- .
There is something more needs to be done
26We are not done yet
What ?!
We just mentioned that all the closed isocontours
will intersect with the arcs connecting the
extrema points How about non-closed
isocontours? (or called open isocontours)
27Extrema Graph (5)
Contours missed
These open isocontours will intersect with ??
cells
28Extrema Graph (6)
- Algorithm (continued)
- 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