Presentation is loading. Please wait.

Presentation is loading. Please wait.

Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.

Similar presentations


Presentation on theme: "Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore."— Presentation transcript:

1 Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore

2 Isosurface Extraction Marching Cubes v.s. Extraction from Seed-set Marching Cubes v.s. Extraction from Seed-set

3 Propagation Algorithm Given an starting cell that contains isosurface, the remainder of the isosurface can be found by propagation. Given an starting cell that contains isosurface, the remainder of the isosurface can be found by 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

4 About Seedset Need to know the starting cells! For any given isovalue C, finding the starting cells to start the propagation. You could do a global search, but … Solution : Extrema Graph & Volume Thinning & Contour Trees

5 Extrema Graph Find all the local minimum and maximum points, and connect them together by straight lines (Arcs).

6 Example

7 Volume Thinning in 2D

8 Volume Thinning

9 Example

10 Example

11 Introduction This paper gives the first methods to obtain seed sets that are provably small in size. This paper gives the first methods to obtain seed sets that are provably small in size. They are based on a variant of the contour tree (or topographic change tree). They are based on a variant of the contour tree (or topographic change tree). This paper gives a simple algorithm to compute such a tree in regular and irregular meshes. This paper gives a simple algorithm to compute such a tree in regular and irregular meshes.

12 Introduction Scalar data defined over the plane or 3-space is quite common in fields like: Scalar data defined over the plane or 3-space is quite common in fields like: Medical imaging Medical imaging Scientific Visualization Scientific Visualization Geographic information systems Geographic information systems Example: Example: Scan of the brain Scan of the brain Atmospheric pressure model Atmospheric pressure model Elevation in the landscape Elevation in the landscape

13 Introduction The complexity of the contours with a single function value in a mesh with n elements is roughly proportional to in the 2D case and to in the 3D case. The complexity of the contours with a single function value in a mesh with n elements is roughly proportional to in the 2D case and to in the 3D case. Therefore, it is worthwhile to have a search structure to find the mesh elements through which the contours pass. Therefore, it is worthwhile to have a search structure to find the mesh elements through which the contours pass.

14 Introduction There are basically two approaches to find the contours more efficiently : There are basically two approaches to find the contours more efficiently : Store the 2D or 3D domain of the mesh in a hierarchical structure to prune the search. Store the 2D or 3D domain of the mesh in a hierarchical structure to prune the search. Example: Octrees Example: Octrees Store the scalar range, also called span, of all the mesh elements in a search structure. Store the scalar range, also called span, of all the mesh elements in a search structure. Min-max graph, Kd-trees, Interval trees Min-max graph, Kd-trees, Interval trees Problem: serious storage overhead Problem: serious storage overhead

15 Introduction It is possible to reduce the storage requirement of the search structure. (Seed sets) It is possible to reduce the storage requirement of the search structure. (Seed sets) The objective of this paper is to present new methods for seed set computation. The objective of this paper is to present new methods for seed set computation. To construct such a small size seed set, we use a variation of the contour tree, … To construct such a small size seed set, we use a variation of the contour tree, …

16 Contour Example Example

17 Contour Criticalities: Criticalities: local maxima, local minima, saddle point. local maxima, local minima, saddle point. Maxima Saddle point Minima

18 Contour If we let the function value take on the values from +  to - , the contour shapes deform continuously. If we let the function value take on the values from +  to - , the contour shapes deform continuously.

19 Contour A new contour component starts to form whenever the function value is equivalent to a locally maximal value. A new contour component starts to form whenever the function value is equivalent to a locally maximal value. An existing contour component disappears whenever the function value is equivalent to a locally minimal value. An existing contour component disappears whenever the function value is equivalent to a locally minimal value. At saddle points At saddle points Adjoin from two (or more) components. Adjoin from two (or more) components. Split into two (or more) components. Split into two (or more) components. Get a different topological structure. (ex. genus) Get a different topological structure. (ex. genus)

20 Contour Tree 2D triangle mesh with the contours of the saddles, and the contour tree. 2D triangle mesh with the contours of the saddles, and the contour tree.

21 Contour Tree Algorithm Situation of the sweep of a 2D mesh when the function value is 16. Situation of the sweep of a 2D mesh when the function value is 16. Divided-and-Conquer

22 Contour Tree Algorithm This graph is a tree, and it is a directed acyclic graph (DAG). This graph is a tree, and it is a directed acyclic graph (DAG). All nodes in the tree have All 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) Saddles Saddles This is the case if and only if it has neighboring vertices around it that are higher, lower, higher, and lower, in cyclic order around it. This is the case if and only if it has neighboring vertices around it that are higher, lower, higher, and lower, in cyclic order around it.

23 Contour 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 F defined over all cells of M. a continuous real-valued function F defined over all cells of M.

24 Contour Tree Algorithm We define the contour tree T as follows. We define the contour tree T as follows. Take each maximal connected contour component which contains a criticality. Take each maximal connected contour component which contains a criticality. These components correspond to the supernodes of T. Each supernodes is labeled with the function value of its contour. These components correspond to the supernodes of T. Each supernodes is labeled with the function value of its contour. For each region bounded by two contour components, we add a superarc between the corresponding supernodes in T. Oriented from the higher to the lower function value. For each region bounded by two contour components, we add a superarc between the corresponding supernodes in T. Oriented from the higher to the lower function value.

25 Contour Tree Algorithm At a local maximum of the mesh : At a local maximum of the mesh : a new contour appears. a new contour appears. At a local minimum of the mesh : At a local minimum of the mesh : a contour disappears. a contour disappears. At a non-critical vertex of the mesh : At a non-critical vertex of the mesh : At saddle of the mesh : At saddle of the mesh : there is some change in topology in the collection of contours. there is some change in topology in the collection of contours.

26 Seed-set Selection A seed-set is a subset of the cells in the mesh. A seed-set is a subset of the cells in the mesh. A seed-set is complete if every possible contour passes through at least one seed. A seed-set is complete if every possible contour passes through at least one seed. Segments Segments The small seed set problem now is the following graph problem : The small seed set problem now is the following graph problem : find a small subset of the segments such that each arc of T is passed by some segment of the subset. find a small subset of the segments such that each arc of T is passed by some segment of the subset.

27 Seed-set Selection The numbering of T. The numbering of T.

28 Seed-set Selection

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

30 Test 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).

31 Test Result Seed sets from 2d scalar data Seed sets from 2d scalar data (a)Seed set from a synthetic smooth function (b)Seed set for a slice of wind speed data ( LAMP )


Download ppt "Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore."

Similar presentations


Ads by Google