Abstract
This paper introduces two efficient algorithms that compute
the Contour Tree of a three-dimensional scalar field F and its augmented
version with the Betti numbers of each isosurface. The Contour Tree
is a fundamental data structure in scientific visualization that is
used to pre-process the domain mesh to allow optimal computation of
isosurfaces with minimal overhead storage. The Contour Tree can also
be used to build user interfaces reporting the complete topological
characterization of a scalar field, as shown in
Figure~\ref{fig:top}. Data exploration time is reduced since the
user understands the evolution of level set components with changing
isovalue. The Augmented Contour Tree provides even more accurate
information segmenting the range space of the scalar field into regions of invariant topology. The exploration time for a single
isosurface is also improved since its genus is known in advance.
Our first new algorithm augments any given Contour Tree with the
Betti numbers of all possible corresponding isocontours in linear
time with the size of the tree. Moreover, we show how to extend the
scheme introduced in [3] with the Betti number
computation without increasing its complexity. Thus, we improve on
the time complexity in our previous approach from
O(m log m) to O(n log n + m), where m is the number of cells
and n is the number of vertices in the domain of F.
Our second contribution is a new divide-and-conquer algorithm that
computes the Augmented Contour Tree with improved efficiency. The
approach computes the output Contour Tree by merging two
intermediate Contour Trees and is independent of the interpolant. In
this way we confine any knowledge regarding a specific interpolant
to an independent function that computes the tree for a single
cell. We have implemented this function for the trilinear
interpolant and plan to replace it with higher-order interpolants
when needed. The time complexity is O(n + t log n), where t is the
number of critical points of F. For the first time we can
compute the Contour Tree in linear time in many practical cases
where t = O(n1–ε). We report the running times for a
parallel implementation, showing good scalability with the number of
processors.
[1]
T. Banchoff.
CRITICAL POINTS AND CURVATURE FOR EMBEDDED POLYHEDRA
,
1967
.
[2]
R. Smullyan.
ANNALS OF MATHEMATICS STUDIES
,
1961
.
[3]
Galli,et al.
Water under pressure
,
2000,
Physical review letters.
[4]
Jack Snoeyink,et al.
Computing contour trees in all dimensions
,
2000,
SODA '00.
[5]
Mark de Berg,et al.
Trekking in the Alps Without Freezing or Getting Tired
,
1993,
Algorithmica.
[6]
Gary L. Miller,et al.
Automatic Mesh Partitioning
,
1992
.
[7]
Valerio Pascucci,et al.
Contour trees and small seed sets for isosurface traversal
,
1997,
SCG '97.
[8]
Valerio Pascucci,et al.
The contour spectrum
,
1997,
Proceedings. Visualization '97 (Cat. No. 97CB36155).
[9]
R. K. Shyamasundar,et al.
Introduction to algorithms
,
1996
.
[10]
S. Vavasis,et al.
Geometric Separators for Finite-Element Meshes
,
1998,
SIAM J. Sci. Comput..
[11]
Mikhail N. Vyalyi,et al.
Construction of contour trees in 3D in O(n log n) steps
,
1998,
SCG '98.
[12]
Valerio Pascucci.
On the topology of the level sets of a scalar field
,
2001,
CCCG.