University of Illinois at Urbana-Champaign

Setting the Surface Generation Parameters

The surface may be generated using any one of four different algorithms: Adapt/Deform, Growing, Marching Cubes, and Kohonen. Of these four, only two will be described here: marching cubes and adaptive deformation. These two are the easiest to understand of the four and produce good results with a minimal amount of fussing.

All of the algorithms are explained in somewhat greater, though often confusing detail in the Analyze help pages for the Tiler. The references section at the end of this technical report lists papers dealing with these algorithms should further information be desired.

Adaptive Deformation

The adaptive deformation algorithm is the default and is recommended as the best starting point for surface generation. It produces good results with a minimum amount of delay using the default set of parameters, and appears to work well independent of the thresholds and content of the data.

The algorithm starts by approximating the surface using a surface tracking technique. A series of imaginary springs with an arbitrary tension attach neighboring points along this surface with each other and with the data itself. Over time this mesh of springs is allowed to evolve and balance out the spring forces. The final positions of the original points - the connecting joints for each of the springs - approximates the surface of the object.

The parameters that control the adaptive deformation model include:

Field Description
Polygonal Budget: The maximum number of polygons to include in the final surface. If set to zero, the number of polygons will grow to an arbitrarily large size depending upon the constraints defined by the other parameters. Setting the number of polygons to a number greater than zero is not recommended unless the cube edge length correspondingly grows, as surface instabilities may develop drastically increasing the surface generation time.
Cube Edge Length: The number of voxels used to create the point groupings for the initial surface approximation. Small (non-zero) polygonal budgets require larger cube edge lengths. When the budget is set to zero, smaller edge lengths produce higher resolution surfaces.
Deformation Steps: The number of iterations of the deformation process. Larger numbers permit the system of imaginary springs to more closely approximate equilibrium conditions, but also increase the total generation time. When creating test surfaces, fewer than ten deformation steps can produce satisfactory results.
Time Step: The speed of the moving vertices where the springs are "attached". Smaller values produce smaller changes in the surface and require more deformation steps to reach equilibrium. Larger values are not recommended as they can produce spring-system instabilities that prevent the surface from ever converging to an acceptable surface.
Surface Force: The force attracting the geometric surface points to the original data.
Spring Constant: The stiffness of the imaginary springs forming the imaginary surface mesh. Changing the spring force and spring constant values may speed the development of the final surface, though some combinations of values may produce system instabilities.

Selection of suitable parameters may require some trial and error before producing satisfactory results. Starting with the defaults for every parameter except deformation steps gives a feel for how the other parameters should be adjusted.

After selecting suitable parameters and pressing the "Build" button, a "status meter" appears to give a rough gauge of the progress of the algorithm. The status meter is a paragon of simplicity. The help pages do not describe exactly what information it represents, but each spike in the graph should roughly equal one deformation step which in turn should provide a rough estimate how long the algorithm will take to complete.

Do it yourself...
1. Set the Method type to Adapt/Deform. Adapt/Deform Tiling Parameters
2. Change the Deformation Steps to 10.
3. Accept the default values for the other parameters.
4. Press the Build button.
5. Follow the progress meter, noting the progress of the deformation algorithm. Adapt/Deform Progess Meter
6. Once complete, observe a rendered image of the surface in the Tiler's render pane. Tiler with Adapt/Deform Surface
7. Rotate the model in the Tiler's render pane by holding down the left mouse button and dragging the pointer.

Marching Cubes

The old standby. The oldest of the true surface generation algorithms and by far the simplest, marching cubes uses no parameters other than the threshold to generate the surface.

The name is descriptive of the algorithm: each cube of data (voxel) is examined row by row, slice by slice, for surface intersections. As the algorithm marches through the individual cubes, linear interpolations performed on the data values determine if the surface cuts through that voxel. If the threshold data value lies within the current cube, a polygon is added to the surface in the correct spatial location.

Marching Cubes is by far the fastest of the four algorithms included in Analyze, and produces decent if somewhat jagged results. The speed of this algorithm makes it an attractive option if many datasets are to be processed. Softimage can be used to "soften" the surfaces if the jagged edges are bothersome.

After pressing the Build button, a status bar appears to give a rough estimate of the progress of the algorithm. The status bar represents the percentage of data cubes processed.

Do it yourself...
1. Set the Method type to Marching Cubes. Marching Cubes Parameters
2. Press the Build button.
3. Note how the progress bar differs from the one used by the Adapt/Deform method. Marching Cubes Progress Meter
4. Once complete, observe a rendered image of the surface in the Tiler's render pane. Tiler Marching Cubes
5. Rotate the model in the Tiler's render pane by holding down the left mouse button and dragging the pointer.

Viewing the Surface in Analyze

Once a surface has been extracted, the rendering of the surface will appear in the main Tiler window's render pane. It may take some time to display the surface, especially if the surface contains tens of thousands of polygons.

Holding down the left mouse button in the render pane and dragging will rotate the surface. Updating the rendered view may take some time depending upon the complexity of the surface.

PREV Page 6 of 12 NEXT