of 28 /28
Isosurface Extractions 2D Isocontour 3D Isosurface
• Author

clemence-hopkins
• Category

## Documents

• view

215

0

TAGS:

Embed Size (px)

### Transcript of Isosurface Extractions 2D Isocontour 3D Isosurface.

• Slide 1
• Isosurface Extractions 2D Isocontour 3D Isosurface
• Slide 2
• Isosurfaec cells: cells that contain isosurface. min < isovalue < max Marching cubes algorithm performs a linear search to locate the isosurface cells not very efficient for large-scale data sets. Isosurface cell search
• Slide 3
• Isosurface 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
• Slide 4
• Efficient isosurface cell search Problem statement: Given a scalar field with N cells, c 1, c 2, , c n, with min-max ranges (a 1,b 1 ), (a 2,b 2 ), , (a n, b n ) Find {C k | a k < C < b k ; C=isovalue}
• Slide 5
• Efficient search methods 1. Spatial subdivision (domain search) 2. Value subdivision (range search) 3. Contour propagation
• Slide 6
• Domain 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))
• Slide 7
• Range Search (1) Subdivide the cells based on their min/max ranges Global minimumGlobal maximum Isovalue Hierarchically subdivide the cells based on their min/max ranges
• Slide 8
• Range Search (2) Within each subinterval, there are more than one cells To further improve the search speed, we sort them. Sort by what ? Min and Max values Max Min M5 M2 M6 M4 M1 M3 M7 M8 M11 M10 M9 m5 m1 m6 m3 m8 m7 m2 m9 m11 m4 m10 G1 G2 Isosurface cells = G1 G2
• Slide 9
• Range Search (3) ? A clean range subdivision is difficult Difficult to get an optimal speed
• Slide 10
• Range 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?
• Slide 11
• Span Space min max What are the isosurface cells? C How to search them?
• Slide 12
• Span 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
• Slide 13
• NOISE Algorithm (K-d tree) left right up down Construction min max * One node per cell Min Max ? Median point
• Slide 14
• NOISE Algorithm (Query) Complexity = O( N + k) left right up down Min Max ? Median point If ( isovalue < root.min ) check the ?? Subtree If (isovalue > root.min) Check the ?? Subtree Dont forget to check the root s interval as well.
• Slide 15
• Span Space Search (2) Search Method (2): ISSUE O(log(N/L)) O(1) ? Complexity = ?
• Slide 16
• Back to Range Search Interval Tree: II I left I right Sort all the data points (x1,x2,x3,x4,., xn) Let = x mid point) n/2 We use to divide the cells into three sets I I left, and I right I cells that have min < max I left: cells that have max < I right: cells that have min >
• Slide 17
• Interval Tree II I left I right I cells that have min < max I left: cells that have max < I right: cells that have min > Now, given an isovalue C 1)If C < 2)If C > 3) If C = Complexity = O(log(n)+k) Optimal!!
• Slide 18
• Range 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!!!
• Slide 19
• Basic Idea: Given an initial cell that contains isosurface, the remainder of the isosurface can be found by propagation Contour Propagation A B D C E Initial cell: A Enqueue: B, C Dequeue: B Enqueue: D FIFO Queue A B C C C D . Breadth-First Search
• Slide 20
• Challenges 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
• Slide 21
• Solutions (1)Extrema Graph (Itoh vis95) (2)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
• Slide 22
• Extrema Graph (1)
• Slide 23
• Extrema 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.
• Slide 24
• Extrema Graph (3) E1 E2 E3 E4 E7 E5 E6E8 a2 a3 a4 a5 a6 a7 a1 Extreme Graph: { E, A: E: extrema points A: Arcs conneccts E } An arc consists of cells that connect extrema points (we only store min/max of the arc though)
• Slide 25
• Extrema Graph (4) Algorithm: Given an isovalue 1)Search the arcs of the extrema graph (to find the arcs that have min/max contains the isovalue 2)Walk through the cells along each of the arcs to find the seed cells 3)Start to propagate from the seed cells 4). There is something more needs to be done
• Slide 26
• We 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)
• Slide 27
• Extrema Graph (5) Contours missed These open isocontours will intersect with ?? cells Boundary Cells!!
• Slide 28
• Extrema Graph (6) Algorithm (continued) Given an isovalue 1)Search the arcs of the extrema graph (to find the arcs that have min/max contains the isovalue 2)Walk through the cells along each of the arcs to find the seed cells 3)Start to propagate from the seed cells 4)Search the cells along the boundary and find seed cells from there 5)Propagate open isocontours