Overview | All Modules | Tutorial | User's Guide | Programming Guide

COVISE Online Documentation


Module category: Mapper



IsoSurfaceComp

The IsoSurfaceComp module creates an isosurface from a three dimensional structured and unstructured grid-based data mapped on this isosurface using the marching cubes algorithm. This module provides all functionalities of IsoSurface, but has an important advantage. You may considerably simplify your maps by using IsoSurfaceComp, because you may connect directly its first output port with a renderer, thereby relieving yourself from the burden of using Collect, Colors, VectorField, etc.

IsoSurfaceComp.png

IsoSurfaceComp is available on all supported platforms.

Parameters

Name Type Description
gennormals Boolean Generation of surface normals. Since renderers often have problems generating normals on the fly, this option is recommended and TRUE by default.
genstrips Boolean Generation of triangle strips. This option can be used to take advantage of graphics hardware in the final rendering steps. Default is TRUE.
isopoint Vector Point determining the isosurface.
isovalue Boolean The isovalue to be extracted from the data set. The default value is 0.0.
autominmax Boolean -
color_or_texture Boolean When true, the output Geometry object will have a an object describing colors. Otherwise, it will contain a texture.
scale Scalar This parameter is relevant if you want to map vector fields on your cutting surfaces. In this case the vector field is represented by line objects. Their length is controled with this parameter (see parameter length below for further details).
length Choice This is only relevant for vector data. You have 2 options: either 1*scale or length*scale. In the first one, all lines representing the vector field are the same length, given by parameter scale. In the second one, this scale is multiplied by the true length of the vector to determine the length for the lines.
num_sectors Scalar This is only relevant for vector data. If you want to better visualise the direction of the vector field, you may wish to represent the output lines as arrows. The complexity of these arrows may be controled with this parameter. Do not be too greedy using it, the higher it is, the bigger the output object shall be.
vector Choice SurfaceAndLines
OnlySurface
OnlyLines
interactor Choice Value
Point
(You may determine the isosurface giving an isovalue or a point in 3D space.)

Input Ports

Name Type Description
requiredmeshIn UniformGrid
RectilinearGrid
StructuredGrid
UnstructuredGrid
All kinds of grid-based data is accepted as input including sets.
requiredisoDataIn Float
Float
Scalar or vector data is accepted as input for isosurface generation. The number of elements (or vertices) must match that of the respective grid.
optionaldataIn Float
Float
Vec3
Vec3
This optional port can be used to map additional values onto the created isosurface for coloring.
optionalcolorMapIn ColorMap Optional color map for the output. If not used the module generates a color map based on the output data.

Output Ports

Name Type Description
outputgeometryOut Geometry The complete geometry output which can be directly connected with a renderer.
outputmeshOut Polygons
TriangleStrips
Isosurface produced in either polygonal or optimized triangle strip format.
outputdataOut Float
Vec3
Interpolated data on the surface, when data has been provided at the optional input port dataIn.
outputnormalOut Unstructured_V3D_Normals Normals calculated based on the weighted average of the face normals of all neighbor faces of the resulting polygonal isosurface. Normal generation turned on results in a higher memory consumption of the isosurface module.

Examples

Figure: covise/net/general/examples/IsoSurfaceComp.net
IsoSurfaceCompNet.png

The first example network shows an isosurface generation using data from the GenDat module. A scalar field and a vector field are generated. IsoSurfaceComp creates isosurfaces for a given value of the scalar field. We map the vector field on the output geometry using colored lines. This task would require more modules if we had use the IsoSurface module instead.

You find the map in the directory covise/net/general/examples.

The next image is a snapshot of the results in the Inventor Renderer.

RendererSnapshot.png

Tunable Parameters

The Isosurface(Comp) module algorithm for unstructured grids has to allocate memory for the output vertices and the data interpolated on it. The size of this allocation is based on heuristics and by default set to 20% of the number of vertices in the input data set. However, this might not be enough for some data sets, especially if the Isosurface is extremely wrinkled.

In this case, the module terminates execution, submits a message, increases the ratio by 5% and re-executes itself. To prevent this procedure, establish a higher starting value by putting a section with a higher value (e.g. 50%) into your covise.config:

IsosurfaceSurface
{
   # Ratio of array size to number of input vertices in Percent
   VERTEX_RATIO   50
}

This value is used by both IsoSurface and IsoSurfaceComp. The theoretical maximum value is 300% (VERTEX_RATIO 300).


Authors: Martin Aumüller, Ruth Lang, Daniela Rainer, Jürgen Schulze-Döbold, Andreas Werner, Peter Wolf, Uwe Wössner
Copyright © 1993-2022 HLRS, 2004-2014 RRZK, 2005-2014 Visenso
COVISE Version 2021.12