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
- read field is a Data Input module
- volume bounds is a Mapper module
- isosurface is a Mapper module.
- geometry viewer is a Data Output module.
(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.
- 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.
- 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.
- 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.
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.