Isosurface Extractions

28
Isosurface Extractions 2D Isocontour 3D Isosurface

description

Isosurface Extractions. 3D Isosurface. 2D Isocontour. Isosurface cell search. 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. - PowerPoint PPT Presentation

Transcript of Isosurface Extractions

Page 1: Isosurface Extractions

Isosurface Extractions

2D Isocontour 3D Isosurface

Page 2: Isosurface Extractions

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

Page 3: Isosurface Extractions

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

nn

Page 4: Isosurface Extractions

Efficient 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 < C < bk; C=isovalue}

Page 5: Isosurface Extractions

Efficient search methods

1. Spatial subdivision (domain search)

2. Value subdivision (range search) 3. Contour propagation

Page 6: Isosurface Extractions

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))

Page 7: Isosurface Extractions

Range Search (1)

Subdivide the cells based on their min/max ranges

Global minimum Global maximum

Isovalue

Hierarchically subdivide the cells based on their min/max ranges

Page 8: Isosurface Extractions

Range Search (2)

Within each subinterval, there are more than one cellsTo 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

Page 9: Isosurface Extractions

Range Search (3)

?

A clean range subdivision is difficult …

Difficult to get an optimal speed

Page 10: Isosurface Extractions

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?

Page 11: Isosurface Extractions

Span Space

min

max

What are the isosurface cells?

C

How to search them?

Page 12: Isosurface Extractions

Span Space Search (1)

With the point representation, subdividing the space ismuch 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

Page 13: Isosurface Extractions

NOISE Algorithm (K-d tree)

left right

up down

… … …

Construction

min

max

* One node per cell

Min

Max

?

Median point

Page 14: Isosurface Extractions

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 • Don’t forget to check the root ‘s interval as well.

Page 15: Isosurface Extractions

Span Space Search (2)

Search Method (2): ISSUE O(log(N/L))

O(log(N/L))

O(1)

?

Complexity = ?

Page 16: Isosurface Extractions

Back to Range Search

Interval Tree:

I

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 threesets II left, and I right

Icells that have min < max

I left: cells that have max < I right: cells that have min >

… …

Page 17: Isosurface Extractions

Interval Tree

I

I left I right

… … Icells 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!!

Page 18: Isosurface Extractions

Range Search Methods

In general, range search methods all are superfast –

two order of magnitude faster than the marching cubesalgorithm in terms of cell search

But they all suffer a common problem …

Excessive extra memory requirement!!!

Page 19: Isosurface Extractions

Basic Idea:

Given an initial cell that contains isosurface, the remainder of the isosurface can be found by propagation

Contour Propagation

A

BD

CE

Initial cell: A

Enqueue: B, C

Dequeue: B

Enqueue: D

FIFO Queue

A

B C

C

C D

….

Breadth-First Search

Page 20: Isosurface Extractions

ChallengesNeed to know the initial cells!

For any given isovalue C, findingthe initial cells to start the propagation is almost as hard as finding the isosurface cells.

You could do a global search, but …

Page 21: Isosurface Extractions

Solutions

(1)Extrema Graph (Itoh vis’95)(2)Seed Sets (Bajaj volvis’96)

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 smallerthan G.

We will only talk about extrema graph due to time constraint

Page 22: Isosurface Extractions

Extrema Graph (1)

Page 23: Isosurface Extractions

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.

Page 24: Isosurface Extractions

Extrema Graph (3)

E1 E2

E3E4

E7

E5E6 E8

a2

a3

a4a5

a6a7

a1

Extreme Graph:

{ E, A: E: extrema points A: Arcs conneccts E }

An ‘arc’ consists of cells that connectextrema points (we only store min/max of the arc though)

Page 25: Isosurface Extractions

Extrema Graph (4)

Algorithm:

Given an isovalue1) Search the arcs of the extrema graph (to find the

arcs that have min/max contains the isovalue2) Walk through the cells along each of the arcs to

find the seed cells3) Start to propagate from the seed cells 4) ….

There is something more needs to be done…

Page 26: Isosurface Extractions

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)

Page 27: Isosurface Extractions

Extrema Graph (5)

Contours missed

These open isocontours will intersect with ?? cells

Boundary Cells!!

Page 28: Isosurface Extractions

Extrema Graph (6)

Algorithm (continued)Given an isovalue1) Search the arcs of the extrema graph (to find the

arcs that have min/max contains the isovalue2) Walk through the cells along each of the arcs to

find the seed cells3) Start to propagate from the seed cells

4) Search the cells along the boundary and find seed cells from there

5) Propagate open isocontours