** Next:** 3.3 Benefits
**Up:** 3 Question 3
** Previous:** 3.1 Overall Visualisation Purpose

##

3.2 Algorithm Details

The algorithm works by examining each voxel of the dataset, and determines if
each of the vertices is inside or outside the surface. This is recorded with
the vertices, and in the case of isosurfaces involves a comparison of the vertex's
data value with the user-selected isosurface value. In this way, the edges of
the voxels along which the isosurface intersects can be determined, and the
position of the surface's intersection is approximated using trilinear interpolation.

The assumption is made that there is at most one surface intersection per edge,
this gives rise to 256 possible voxel configurations (in terms of the vertex
classifications -- there are eight vertices, each of which can be in one of
two states, ). By excluding cases which are specularly and rotationally
isomorphic, this number reduces to 15 possible cases^{3}. These cases describe the triangle mesh configuration of the voxel, and are
thus used as the approximation to the surface.

The algorithm then calculates a normal vector for each vertex, by taking the
central difference of the surrounding vertex values. This normal is used for
shading purposes during the rendering stage.

The triangles and normals may then be output to any standard computer graphics
rendering technique, where the image itself is formed.

** Next:** 3.3 Benefits
**Up:** 3 Question 3
** Previous:** 3.1 Overall Visualisation Purpose
*Kevin Pulo*

2000-08-22