TOC PREV NEXT INDEX

isosurface_nest

Synopsis

A mapper macro to control a set of N isosurfaces at unique levels, with each nested "onion-skins" having 2-pass transparency for high quality rendering.

Input Port

in_field

Field

Data that should be displayed, structured or unstructured, containing at least one scalar component.

Parameters

Name

Type

Description

UI Control

num_component

int

The list of available data components in the input field

RadioBox

num_levels

int

Number of isosurfaces

Slider

min

float

The minimum value used for the first isosurface

Slider

max

float

The maximum data value used for the last isosurface

Slider

transparency

float

The overall group transparency level

Slider

trans_ramp

int

The trigger of transparency - all the same or ramped

CheckBox

ramp_delta

float

Width of range to vary transparency

Slider

Output Port

Name

Type

Description

obj

GDobject

Directly renderable object output (group). Colormap editor may be connected to this port to change isonest color assignments.

Description

The isosurface_nest is similar to the isosurface macro. The isosurface_nest macro creates N isosurfaces at once on the same data set rather than just one at a single threshold value. The range of threshold values for the isosurfaces is automatically spaced evenly between min and max values. All isosurfaces are assigned a unique color and transparency value. Secondary data values are not mapped onto the isosurfaces, only a solid color per isosurface is allowed for maximum visual differentiation. Transparency is applied with special care and methods to achieve high visual quality. First, transparency can be ramped from a low to a high value through the range of isosurfaces. This yields thin transparent shells on the outside with progressively more opaque shells on the interior. Second, a special variation of 2-pass transparency is used to reduce depth-order visual artifacts.

It is assumed that data contains some concentrated high values out of a broader field of low values. In this case, a set of isosurfaces will "nest" like onion-skins around the high value area. The onion is then sliced in half parallel to the viewer (using culling modes), into front and back halves. The back half is rendered first, in outside to inside order (acsending isosurface levels). Then the front half is rendered in reverse order, from inside out. In this way all transparent skins of the onion are rendered in depth order. This method may not work on every data set. If you have a data set with small clusters of low values within a general field of high values, try reversing the data before hand using "data_math".

Because this macro generates N-isosurfaces plus secondary GDobject references to them, it can easily generate a huge amount of geometry for the viewer. Please be patient and carefully select the parameters on smaller data sets first.

The color of each isosurface shell may be uniquely colored. By default, it uses a single range linear colormap to make color assignments. The values may be altered by connecting the "colormap_editor" and adding additional break points. Only the top group object at the output port may be used to edit colors.

The transparency of the whole system of isosurfaces is controlled using a slider parameter rather than the Object editor. The same value may be applied to all isosurfaces, or they can be ramped. If ramp mode is on, then the range delta slider is active and controls the variation from the base transparency value as applied across the group.

 

User Macros

isosurface_nest

Performs the complete multiple-isosurface nesting operations with full user-interface control and simple to use macro packaging.

Input Ports

in_field

Field data to be used as input to the isonest process. The input data can be any standard field data, matching "Mesh+Node_Data", where the node data contains at least one scalar component.

Parameters

num_component

Radio list to select from the list of available data components in the input field to use in application of the isosurface functions.

num_levels

Sets the number of isosurfaces to generate in the nested structure. Default is 3, default slider max is 8.

min

Sets the minimum value used for the first isosurface using a slider.

max

Sets the maximum data value used for the last isosurface in the sequence using a slider.

transparency

Sets the overall group transparency level. If Transparency Progessive Ramp mode is off, this value is applied directly to all isosurfaces using the slider.

trans_ramp

This toggle mode if off, allows a single transparency value to be used on all surfaces. If on, it can provide better visual clarity by having lower isosurface value shells (those most likely to be on the outside of the nest) to lower values, while those at the heart of the onion have higher values (more opaque).

ramp_delta

This slider is active in Progressive Ramp mode. The value of this slider is used to control the range of transparency values across the nested structure, controlling the overall range of variation. The main transparency control above is used as the center point, with the range split +/- above and below this value. A range value of zero is identical to ramp mode off. The default is 0.3.

Output Ports

obj

Directly renderable output object that can be displayed in a 3D viewer. This output is a link to a GroupObject that contains a Dynamically created set of subobjects. This top group object may also be used to edit the colormap.

Example

Libraries.Examples.Visualization.IsoNest_Unif: v/dv_examp/isonest_1.v
Libraries.Examples.Visualization.IsoNest_Unstr: v/dv_examp/isonest_2.v

File

v/modules.v

See also related modules



TOC PREV NEXT INDEX