−
(a) (b) (d)(c)
0
+
0
++
+
+
0
+
+
+
−
−
−−
−
−−
Figure 1: Topological changes caused by sample value
modification. In each subfigure, the figure on the top shows
the original sample values, while the figure at the bottom
shows the possible topological change.
value is referred as that minus threshold. And we
call the cell vertex with positive/negative/zero sam-
ple value positive/negative/zero cell vertex re-
spectively. Existing MC methods do not allow cell
vertices lie on the surface, or zero cell vertices. Un-
der this assumption, the surface is limited to intercept
the cell in 2
8
= 256 ways since each of the eight
cell vertices can lie either inside or outside the sur-
face. It is equivalent to coloring the eight cell vertices
with two colors. Hence we call existing MC methods
bicolor methods. By exploiting the symmetries in the
256 ways, Lorensen et al. summarized the cases into
15 patterns in the original MC method (Lorensen and
Cline, 1987).
To hold this assumption, existing bicolor MC meth-
ods have to modify the zero sample value in prac-
tice. For example, as level set may pass through grid
points, Han et al. change the sample value at such grid
points from zero to negative (Han et al., 2003). This
kind of modification may introduce obvious topolog-
ical changes, which is shown in Fig. 1. The thick line
in the figure represents the interception of surface and
cell face. Modification on sample value changes the
original cell face into ambiguous faces as shown in
(a) and (b). And the interceptions become completely
different after modifications on (c) and (d). Secondly,
the isosurface extracted should be neutral with posi-
tive and negative data samples. In other words, the
isosurface should not change if we multiply the sam-
ple data with −1. Modifying the sample value, how-
ever, can lead to two different topological results for
the same set of data as shown in the experiment sec-
tion of this paper. Thirdly, modifying sample value
may introduce nonexistent face as shown in the ex-
periments.
This defect is regarded as a technical problem in
(Gelder and Wilhelms, 1994), and one of the several
major artifacts in most existing isocontour software
(Han et al., 2003). One of the reasons that existing
bicolor MC methods elide this problem is too many
cases are introduced without this assumption. If the
sample at cell vertex is allowed to be zero, each of the
eight cell vertices has three instead of two possible
positions relative to the surface, i.e. inside, outside
(1) (2) (3)
(4) (5) (6)
Figure 2: An example of one possible way to find 4 patches
edge by edge in a cell with 12 vertices.
or on the surface. Thus the surface intercepts the unit
cube in a total of 3
8
= 6561 ways. It is equivalent to
coloring cell vertices with three colors. We name our
method tricolor MC (TMC) to reflect this character.
To enumerate all these ways and reduce the symme-
tries manually, as what has been done in (Lorensen
and Cline, 1987), is extremely tedious and error-prone
to human. In the following sections, we will eliminate
this assumption to include zero cell vertices without
modification.
3 SURFACE CONSTRUCTION
For the convenience of discussion, we define patch
as the close interception of the isosurface and a cell, a
polygon formed by connecting the surface mesh ver-
tices. A patch edge is the interception of the surface
with a cell face, whose end points are two adjacent
surface mesh vertices on the cell edge. The degree
of surface vertex is the number of patch edges inci-
dent on the vertex. Since we are only interested on the
patch edges in one cell, hereafter the vertex degree ac-
tually refers to the degree in one cell. As mentioned
in Section 2, the cell may hold the patches in 6561
ways if taking zero cell vertices into consideration.
Instead of enumerating all these cases, we go back to
two dimensions to examine the ways of the intercep-
tion of isosurface and one cell face, or the patch edges.
As the patch is enclosed by patch edges, it forms an
Eulerian circuit, a graph cycle which uses each graph
edge exactly once. It suggests finding the patches in
the cell by finding the Eulerian circuits. We start from
any of the surface vertex, find one patch edge incident
on it if possible, and continue with the surface vertex
that is the other endpoint of the patch edge until we
return to the original vertex. After one Eulerian cir-
cuit, or a patch, is completed, repeat the process until
all the patch edges in the cell have been visited. Then
we find all the patches in the cell. An example of one
possible way to find 4 patches edge by edge by within
one cell is illustrated in Fig. 2.
As more than two surface vertices may lie on a
GRAPP 2006 - COMPUTER GRAPHICS THEORY AND APPLICATIONS
320