Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum...
-
Upload
ilene-sullivan -
Category
Documents
-
view
215 -
download
0
Transcript of Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum...
Contour Tree and Small SeContour Tree and Small Seed Sets for Isosurface Traved Sets for Isosurface Trav
ersalersalMarc van KreveldMarc van Kreveld
Rene van OostrumRene van OostrumChandrajit BajajChandrajit BajajValerio PascucciValerio Pascucci
Daniel R. SchikoreDaniel R. Schikore
Isosurface ExtractionIsosurface Extraction Marching Cubes v.s. Extraction from Seed-setMarching Cubes v.s. Extraction from Seed-set
Propagation AlgorithmPropagation Algorithm
Given an starting cell that contains isosurface,Given an starting cell that contains isosurface, the remainder of the isosurface can be found the remainder of the isosurface can be found by by propagationpropagation..
A
BD
CE
Initial cell: A
Enqueue: B, C
Dequeue: B
Enqueue: D
…
FIFO Queue
A
B C
C
C D
….
Breadth-First Search
About SeedsetAbout Seedset Need to know the starting cells!
For any given isovalue C, findingthe starting cells to start the propagation.
You could do a global search, but …
Solution : Extrema Graph & Volume Thinning & Contour Trees
Extrema GraphExtrema Graph
Find all the local minimum and maximum points, and connect them together by straight lines (Arcs).
ExampleExample
Volume Thinning in 2DVolume Thinning in 2D
Volume ThinningVolume Thinning
ExampleExample
ExampleExample
IntroductionIntroduction
This paper gives the first methods to obtain This paper gives the first methods to obtain seed sets that are provably small in size.seed sets that are provably small in size.
They are based on a variant of the They are based on a variant of the contour contour treetree (or topographic change tree). (or topographic change tree).
This paper gives a simple algorithm to This paper gives a simple algorithm to compute such a tree in regular and compute such a tree in regular and irregular meshes.irregular meshes.
IntroductionIntroduction
Scalar data defined over the plane or Scalar data defined over the plane or 3-space is quite common in fields like:3-space is quite common in fields like: Medical imagingMedical imaging Scientific VisualizationScientific Visualization Geographic information systemsGeographic information systems
Example:Example: Scan of the brainScan of the brain Atmospheric pressure modelAtmospheric pressure model Elevation in the landscapeElevation in the landscape
IntroductionIntroduction
The complexity of the contours with a The complexity of the contours with a single function value in a mesh with n single function value in a mesh with n elements is roughly proportional to in elements is roughly proportional to in the 2D case and to in the 3D case.the 2D case and to in the 3D case.
Therefore, it is worthwhile to have a Therefore, it is worthwhile to have a search structure to find the mesh search structure to find the mesh elements through which the contours elements through which the contours pass.pass.
n3/2n
IntroductionIntroduction
There are basically two approaches to fiThere are basically two approaches to find the contours more efficiently :nd the contours more efficiently : Store the 2D or 3D domain of the mesh in a Store the 2D or 3D domain of the mesh in a
hierarchical structure to prune the search.hierarchical structure to prune the search. Example: Example: OctreesOctrees
Store the scalar range, also called Store the scalar range, also called spanspan, of a, of all the mesh elements in a search structure.ll the mesh elements in a search structure. Min-max graphMin-max graph, , Kd-treesKd-trees, , Interval treesInterval trees Problem: serious storage overheadProblem: serious storage overhead)(log knO
IntroductionIntroduction
It is possible to reduce the storage It is possible to reduce the storage requirement of the search structure. requirement of the search structure. (Seed sets)(Seed sets)
The objective of this paper is to present The objective of this paper is to present new methods for seed set computation.new methods for seed set computation.
To construct such a small size seed set, To construct such a small size seed set, we use a variation of the contour tree, …we use a variation of the contour tree, …
ContourContour
ExampleExample
ContourContour
Criticalities:Criticalities: local maxima, local minima, saddle point.local maxima, local minima, saddle point.
Maxima
Saddle point
Minima
ContourContour If we let the function value take on the values If we let the function value take on the values
from from ++ to - to -, the contour shapes deform , the contour shapes deform continuously.continuously.
ContourContour A new contour component starts to form A new contour component starts to form
whenever the function value is equivalent to a whenever the function value is equivalent to a locally maximal value.locally maximal value.
An existing contour component disappears An existing contour component disappears whenever the function value is equivalent to a whenever the function value is equivalent to a locally minimal value.locally minimal value.
At saddle pointsAt saddle points AdjoinAdjoin from two (or more) components. from two (or more) components. SplitSplit into two (or more) components. into two (or more) components. Get a Get a different topological structuredifferent topological structure. (ex. genus). (ex. genus)
Contour TreeContour Tree
2D triangle mesh with the contours of the 2D triangle mesh with the contours of the saddles, and the contour tree.saddles, and the contour tree.
Contour Tree AlgorithmContour Tree Algorithm Situation of the sweep of a 2D mesh when Situation of the sweep of a 2D mesh when
the function value is 16.the function value is 16.
)( 2n
)log( nnDivided-and-Conquer
Contour Tree AlgorithmContour Tree Algorithm
This graph is a tree, and it is a This graph is a tree, and it is a directed acyclic graph directed acyclic graph (DAG)(DAG)..
All nodes in the tree haveAll nodes in the tree have degree 1 : (corresponding to local extrema)degree 1 : (corresponding to local extrema) degree 2 : (normal vertices)degree 2 : (normal vertices) at least 3 : (saddles)at least 3 : (saddles)
SaddlesSaddles This is the case if and only if it has neighboring vertices aroThis is the case if and only if it has neighboring vertices aro
und it that are higher, lower, higher, and lower, und it that are higher, lower, higher, and lower, in cyclic orin cyclic order aroundder around it. it.
Contour Tree AlgorithmContour Tree Algorithm
The input data is assumed to be :The input data is assumed to be : a mesh M of size n embedded in ;a mesh M of size n embedded in ; a continuous real-valued function a continuous real-valued function F F
defined over all cells of M.defined over all cells of M.
d
Contour Tree AlgorithmContour Tree Algorithm
We define the contour tree We define the contour tree TT as follows. as follows. Take each maximal connected contour component whicTake each maximal connected contour component whic
h contains a criticality.h contains a criticality.
These components correspond to theThese components correspond to the supernodes supernodes of of T T . . Each supernodes is labeled with the function value of itEach supernodes is labeled with the function value of its contour.s contour.
For each region bounded by two contour components, For each region bounded by two contour components, we add a we add a superarcsuperarc between the corresponding supernod between the corresponding supernodes in es in T T . . Oriented from the higher to the lower function Oriented from the higher to the lower function valuevalue..
Contour Tree AlgorithmContour Tree Algorithm
At a At a local maximumlocal maximum of the mesh : of the mesh : a new contour appears.a new contour appears.
At a At a local minimumlocal minimum of the mesh : of the mesh : a contour disappears.a contour disappears.
At a At a non-critical vertexnon-critical vertex of the mesh : of the mesh : At At saddlesaddle of the mesh : of the mesh :
there is some change in topology in the there is some change in topology in the collection of contours.collection of contours.
Seed-set SelectionSeed-set Selection
A seed-set is a subset of the cells in the A seed-set is a subset of the cells in the mesh.mesh.
A seed-set is complete if every possible A seed-set is complete if every possible contour passes through contour passes through at least one seedat least one seed..
SegmentsSegments The small seed set problem now is the The small seed set problem now is the
following following graph problemgraph problem : : find a small subset of the segments such that find a small subset of the segments such that
each arc of each arc of TT is passed by some segment of is passed by some segment of the subset.the subset.
Seed-set SelectionSeed-set Selection
The numbering of The numbering of T .T .
Seed-set SelectionSeed-set Selection
Test ResultTest Result Seed cell statistics for regular (top) and irregular (bottom) data.Seed cell statistics for regular (top) and irregular (bottom) data.
[4] Fast isocontouring for improved interactivity. (Sweeping)
Test ResultTest Result Example of a seed set for a 3-dimensional scalar field (HIPIP).Example of a seed set for a 3-dimensional scalar field (HIPIP).
Test ResultTest Result Seed sets from 2d scalar dataSeed sets from 2d scalar data
(a)Seed set from a synthetic smooth function
(b)Seed set for a slice of wind speed data ( LAMP )