Context
In Amira-Avizo, a surface is used when an explicit geometric representation of object or material boundaries is required, rather than the voxel intensity information contained in a grayscale image. Surfaces are also useful when geometry needs to be exported to specific formats, such as STL, for compatibility with other software.
If the goal is primarily to visualize intensity data, a grayscale dataset is generally sufficient. It can be visualized using techniques such as slices, volume rendering, or isosurface rendering.
When the goal is to obtain explicit geometry representing object or material boundaries—for example, for quantitative analysis, editing, mesh simplification, simulation, or export—a surface representation is more appropriate.
When working with surfaces, it is important to assess the quality of the surface geometry. Quality requirements depend on the intended application, but several characteristics are particularly useful to check, including the number of triangles and whether the surface is closed (watertight).
Amira-Avizo provides several tools for inspecting and identifying potential issues. Some of these checks are available through the Surface Editor > Selector tools, allowing you to evaluate the surface before proceeding with further processing, analysis, or export.
Description
A surface can be generated in different ways depending on the input data and the intended workflow. Below are some possible approaches. Refer to the documentation for each module for additional details.
- If the input is a label field, the Generate Surface module can be used.
- If the input is a grayscale image, the Isosurface module can be used.
For this article, we will use the following tutorial dataset:
<your installation folder>\data\tutorials\PNM\Sponceram.am
After generating a surface, you can attach a Surface View module to visualize it. The Properties panel displays information about the generated surface and provides an indication of its complexity.
In this example, the generated surface contains almost half a million triangles. In general, the performance of algorithms operating on surfaces can be significantly affected by the number of triangles.
For example, the performance of the Align Surface algorithm depends significantly on the number of triangles. The triangle count can also be important when exporting a surface to STL, as the target application may have limitations on the size or complexity of the STL files it can handle.
Therefore, surface simplification is an important aspect to consider when working with complex surfaces. The following sections describe some methods for reducing surface complexity.
1. Isosurface
1.1 Set the threshold value that defines the surface.
1.2 Click Apply to generate the surface and verify that the selected threshold produces the expected result.
1.3 Enable the Downsample port and set Average to 5, 5, 5. Downsampling reduces the resolution of the input data and, consequently, the complexity of the generated surface.
1.3.1 Click Apply again (see step 1.2) to preview the effect of the downsampling settings on the isosurface.
1.4 From the additional options drop-down menu, select Create Surface. This creates an explicit surface object that can then be visualized using the Surface View module.
2. Generate Surface
2.1 Use the Interactive Thresholding module to extract the region of interest as a label field.
2.2 Apply the Generate Surface module using the default settings.
2.3 Attach a Surface View module and display the surface. Check the surface characteristics in the Properties panel to evaluate its complexity.
One important difference compared with Isosurface is how dataset boundaries are handled. By default, the generated surface is closed at the bounding box of the input data, and the surface edges along the boundaries are constrained to remain sharp.
2.4 The Generate Surface options can be adjusted to significantly reduce the number of triangles.
2.4.1 In particular, the surface can be simplified by compacting edges.
2.4.2 Additional simplification can be achieved by removing the constraints at the dataset boundaries.
3. Simplification Editor
The Simplification Editor can be activated from the Properties panel of a surface and provides additional options for reducing the complexity of an existing surface.
Important: The Simplification Editor modifies the original surface. It is therefore recommended to duplicate the surface before applying the simplification, especially if you want to test different settings while preserving the original surface.
3.1 Activate the Simplification Editor. Additional simplification parameters are displayed in the Properties panel.
3.2 Set the desired number of faces. The default target is 18,000 faces, but this value can be adjusted according to the required level of detail and surface complexity.
3.3 Click Simplify to start the surface simplification process.
3.4 Depending on the size and complexity of the surface, the simplification process may take a significant amount of time. In this case, you can use Batch execution with Run Batch to perform the computation in a separate session. Refer to the documentation for more information about batch execution. Also consider your license configuration when running multiple sessions on the same machine.
Notes
After generating or simplifying a surface, additional tools can be used to evaluate the quality of the resulting mesh.
For further quality checks, use Surface > Surface Editor > Selector tool to inspect and select surface elements based on specific criteria.
For more detailed triangle quality analysis, use the Triangle Quality module, which provides statistics and quality measurements for the triangles that make up the surface.
These tools can help identify potentially problematic triangles and assess the overall quality of the surface before using it for further processing or export.
Related Links
- Article: KA-01203 | How to Convert a CT Image to PLY or STL Format
- XTRA: How to Use the Surface View Module and Create Elaborate Surface Renderings
- Tutorial: Tutorials > Geometric Data: Points, Filaments, Surfaces and Grids Tutorials > Surface Reconstruction from 3D Images
