Isosurfaces

An isosurface a surface drawn around points in 3D space that are of the same value; and equipotential surface. The isosurface below represents the places where you would have a 50% probability of finding an electron in the d0 orbital of a hydrogen atom. The data for the hydrogen orbital is in "fields/hydrogen.fld" from the default starting directory for the read field module.

A basic network for rendering isosurfaces

(click here to download the network)


Volume Bounds Control Panel

The volume bounds module defines the limits of the dataset in 3D space for the geometry viewer so that it knows how far to zoom out to view the entire scene. It also draws the colored box around the data. This box can be turned off using the volume bounds control panel.


Isosurface Control Panel

The isosurface level is controlled by a dial on the isosurface module's control panel. The minimum and maximum levels for the dial widget are are set automatically to be the range of the dataset. The most important of the other parameters in the isosurface control panel is the optimize wire button. When you view the isosurface as a wireframe, it looks scrambled. Selecting optimize wire sorts the vertices so that the lines can be rendered properly.


More advanced tricks with Isosurfaces

Often it is useful to control the isosurface level using another module. The simplest case is when you are using an animated float for animation. The animated float is a Data Input module that steps through a series of floating point values in a repeated fashion. It is commonly used commonly used for "cheap animation" since it doesn't require the AVS Animator. Before we even get into using the animated float we need to figure out how to connect the output of animated float to the isosurface module so that it will control the level dial.

By default, the control port for the level dial is hidden on the isosurface module. You can make it visible using the following steps.

  1. Press the button on the right side of the isosurface module using the right mouse button . This should cause a module editor panel to popup.

  2. On this menu, you can see radiobuttons for all of the inputs and outputs for the module as well as all parameters on the control panel. Select the radiobutton labeled level .
    This will cause a widget editor panel to popup.

  3. In this panel, select the port visible radiobutton to make the level parameter visible to the network. Now, close both the widget editor and the module editor panels and you will see now that the isosurface module now has a new purple input port that controls the level parameter.

    Before port visible
    After port visible

Note:All modules that have widgets allow you to make them visible to the network in this same manner.

Now, select an animated float module from the Data Input module list to build the following network.
(click here to download this network)

The range of this particular dataset is 0-255, so the animated float should be set to vary from 50-200 in about 20 steps. This is set in the animated float control panel (on the left side of the screen).

Pressing the button will trigger its operation.
Quicktime Movie

MPEG Movie


Selecting an Isosurface Level using a Color Legend

As you start to use colored slices in conjunction with your isosurfaces, you will want to be able to select isosurface levels that correspond to particular positions on your color legend. The field legend mapper module allows you to do this. Build the following network;

(click here to download the network)

You can select different Isosurface levels by clicking on the color bar. The thin vertical line represents the currently selected isosurface level.