Chapter 4: Multiple Concurrent Visualizations

Chapter Sections

Chapter Overview

Chapter 3 demonstrated the construction of three separate networks used to visualize the utahtorso-lowres-voltage dataset. Chapter 4 discusses a fourth visualization tool; isosurface extraction. This chapter also demonstrates merging all four visualization networks into one larger network that performs all visualizations concurrently.

Isosurfacing

To begin, examine a fourth visualization method; isosufacing. Isosufacing takes a volumetric field, and finds areas in the field with the same value (e.g. in a voltage field, all areas where the voltage is 0.2 amps). Surfaces representing these areas are produced to make it easier to understand and visualize the field's data.

To perform isosufacing in SCIRun, do the following:

  • Create a FieldReader module, and load the utahtorso-lowres-voltage.tvd.fld file.

  • Create an Isosurface module from the SCIRun->Visualization menu. Connect it to the FieldReader.

  • Create a Viewer module, and connect it to the Isosurface Module. Connect these two modules using the purple Geometry ports. In order to determine the type and/or name of a port, press the middle mouse button when the cursor is over the port.

The Isosurface module takes a volume Field as input, and outputs a surface Field and Geometry data. Geometry data is represented by purple pipes, and consists of data that can be directly rendered by the Viewer module. The isosurface can be visualized with or without a color map. This demonstration does not deal with the output field, only the output Geometry data. (Note, geometry data is also referred to as scene graph data.)

Figure 4.1 shows the Isosurface module UI. The Iso Value slider widget determines which "surface" of the incoming volume Field is displayed. Upon releasing the slider, the module executes and the portion of the Field corresponding to the chosen isosurface is displayed. In addition to using the Slider to select a single iso value, the Quantity tab can be used to select multiple evenly spaced isosufaces, or use the List tab to select a list of specific isosufaces.


Figure 4.1: Isosurface UI

If a color map is not connected to the Isosurface input port, the module uses the Default Color. By default, the module extracts a surface using the Marching Cubes algorithm. The user can choose the number of threads (processors) the algorithm will use, or use the NOISE algorithm.

It can be more informative to see color associated with the data, so add our standard color map modules to this net.

  • Create a GenStandardColorMaps module.

  • Create a RescaleColorMap module. Connect the ColorMap output port from GenStandardColorMaps to the ColorMap input port on RescaleColorMap. The ColorMap port is dark purple.

  • Connect the field output port from the FieldReader module to the Field input port on RescaleColorMap.

  • Finally, connect the output ColorMap port from RescaleColorMap to the Isosurface module.

  • Determining the best iso values to use for isosurfacing can take some practice. For this data set, bring up the UI for RescaleColorMap and select Fixed Scale. Use a Min of -30, and a Max of 30. On the Isosurface UI, Select List and use the values: -20 0 20 40. Note, the more surfaces, the longer it takes to generate. On slower computers, you may want to only use two iso values in your list: 0 20.

Putting Nets Together

Now add the visualization techniques covered in Chapter 3. This process involves sharing the FieldReader and Viewer modules across the 3A, 3B, and 3C networks. Choose from the following two options for rebuilding the nets saved in Chapter 3.

Option one, follow the instructions from Chapter 3, taking note of the following items:

  • For help, refer to the complete, color-coded network in Figure 4.2. This figure shows the combined net using the previous chapter's networks. Blue corresponds to 3A, orange to 3B, and yellow to 3C.

  • Repeat all steps for creating 3A in Chapter 3.

  • Do the same for 3B and 3C, but reuse the FieldReader, GenStandardColorMaps, RescaleColorMap and Viewer modules created for net 3A.

Option two:

Use the File->Insert menu to insert all nets and their settinga saved in Chapter 3. Keep one Viewer module. Destroy the other Viewer modules by right-clicking on each one, and selecting the Destroy option. To destroy a connection between two modules, right-click on the pipe connecting the modules, and select Delete. These nets share the FieldReader module (in the upper left corner of Figure 4.2), which loads the utahtorso-lowres-voltage.tvd.fld file. Keep one FieldReader module that reads voltage data, and destroy the others. Do not destroy the FieldReader module reading electrode data (There should be two FieldReader modules, one reading voltage data, and one reading electrode data). Also, use the same GenStandardColorMaps and RescaleColorMap for all the ShowFields except the one connected to the FieldBoundary module.

Note, Figure 4.2 has been annotated to display the important user interface settings for each module. If the image does not look similar to Figure 4.3, check the user interface settings.

Grouping Modules

Select (group) modules by drawing a rectangle around the modules using the left mouse button. The selected modules will turn light blue. Left-click and drag the mouse on any of the modules to move the entire group to a new location in the NetEdit frame.

Save this net, it will be used in Chapter 6.


Figure 4.2: Merged, Color-Coded Net


Figure 4.3: ViewWindow Displaying Combined Visualizations

Summary

At this point in the tutorial, four methods of visualizing data have been discussed. The tutorial has covered integrating separate module groups to perform concurrent visualizations. The modules used are part of the SCIRun Core modules. Chapter 5 discusses using modules from the bioelectric problem solving environment (BioPSE) package.

Return to Top