Difference between revisions of "Modules:VolumeRendering-Documentation-3.6"

From Slicer Wiki
Jump to: navigation, search
Line 85: Line 85:
 
* '''Rendering panel:''' This panel is Dynamically generated panel when valid input is selected.
 
* '''Rendering panel:''' This panel is Dynamically generated panel when valid input is selected.
 
** '''Techniques''' Under the techniques tab, there are currently five rendering methods available. Each of these are described below.
 
** '''Techniques''' Under the techniques tab, there are currently five rendering methods available. Each of these are described below.
*** VTK CPU Ray Casting: Uses the CPU for volume rendering, is parallelized and can take advantage of multi-core capabilities. Uses level-of-detail approach where low resolution is rendered while moving, and high resolution is rendered once motion ceases. Allows zbuffer compositing with texture map cross sections and triangulated surface model. '''Do not use semi-transparent surface models (Yanling, is this true?).'''
+
*** Rendering Method
*** VTK GPU Ray Casting: Uses GPU accelerated ray caster. Allows z-buffer compositing... etc. '''Do not use semi-transparent surface models (Yanling, is this true?).''' This is currently working on Linux and Win32, but not on Mac due to a bug in the OpenGL drivers.
+
**** VTK CPU Ray Casting: Uses the CPU for volume rendering, is parallelized and can take advantage of multi-core capabilities. Uses level-of-detail approach where low resolution is rendered while moving, and high resolution is rendered once motion ceases. Allows zbuffer compositing with texture map cross sections and triangulated surface model. '''Do not use semi-transparent surface models (Yanling, is this true?).'''
*** VTK OpenGL 3D Texture Mapping: Uses texture mapping approach to volume rendering compared to the two render methods above, it has slicghtly lower performance and slightly coarser appearance.
+
***** Method Configuration Panel:
*** NCI GPU Ray Casting: This is a GLSL-based ray caster with several experimental mapping techniques. No z-buffer compositing. Good performance and quality. No hardware restrictions on this method.
+
**** VTK GPU Ray Casting: Uses GPU accelerated ray caster. Allows z-buffer compositing... etc. '''Do not use semi-transparent surface models (Yanling, is this true?).''' This is currently working on Linux and Win32, but not on Mac due to a bug in the OpenGL drivers.
*** Multi-volume GPU Ray Caster: This allows two volumes to be volume rendered and performs an alpha blend between the two volumes. This method requires enough graphics memory to hold all data, or a crash or frozen machine may occur.
+
***** Method Configuration Panel:
 +
**** VTK OpenGL 3D Texture Mapping: Uses texture mapping approach to volume rendering compared to the two render methods above, it has slicghtly lower performance and slightly coarser appearance.
 +
***** Method Configuration Panel:
 +
**** NCI GPU Ray Casting: This is a GLSL-based ray caster with several experimental mapping techniques. No z-buffer compositing. Good performance and quality. No hardware restrictions on this method.
 +
**** Multi-volume GPU Ray Caster: This allows two volumes to be volume rendered and performs an alpha blend between the two volumes. This method requires enough graphics memory to hold all data, or a crash or frozen machine may occur.
 +
***** Method Configuration Panel:
 +
*** GPU Memory Size: A user must hand-select the amount of graphics memory in your machine. The setting will be remembered for your next session. Find this information, (Alex, can fill in for each platform, or for some?)
 +
*** Expected Interactive Frame Rate: This slider forces faster render speeds for the GPU mappers at the expense of quality. (This feature may be removed).
 +
 
 +
 
 +
 
 
*** Allow user to select mapper to use.
 
*** Allow user to select mapper to use.
 
** '''Volume Property'''
 
** '''Volume Property'''

Revision as of 20:31, 29 April 2010

Home < Modules:VolumeRendering-Documentation-3.6

Return to Slicer 3.6 Documentation

Gallery of New Features


Module Name

Volume Rendering

Gradient Magnitude Opacity Modulation
Illustrative Context Preserving Exploration
Volume Rendering on Multi-Channel Confocal Microscopy Image

General Information

Module Type & Category

Type: Interactive

Category: Base

Authors, Collaborators & Contact

  • Yanling Liu, SAIC-Frederick/NCI-Frederick, Alex Yarmarkovich, Isomics, SPL
  • Andreas Freudling, Student Intern at SPL (freudling@bwh.harvard.edu)
  • Contact: Yanling Liu, liuy5@mail.nih.gov, Alex Yarmarkovich, alexy@bwh.harvard.edu
  • Some of the transfer functions were contributed by Kitware, Inc. (VolView)

Module Description

Provides interactive visualization of 3D image data.

Usage

Use Cases, Examples

  • Pausing VolumeRendering module in scene loading

The VolumeRendering module can be paused in scene loading by un-checking the "Monitor Scene Loading Event" check button. Re-checking the check button will flush the paused pipeline and initialize the module using the loaded scene.

  • Multi-Volume GPU Ray Casting

VolumeRendering module has the capability to blend two (bg and fg) volumes in one rendering pipeline. User may select different rendering technique for bg or fg volumes. Different blending options are also available.

Currently under development. Available rendering techniques: Composite (bg) + Composite (fg) + OR blending, Composite (bg) + Composite (fg) + AND blending, Composite (bg) + MIP (fg), MIP (bg) + MIP (fg).

Bg volume only (Composite)
Bg and Fg volume
Fg volume only (MIP)
  • Dual 3D View mode

VTK GPU Ray Casting doesn't support the Dual 3D View mode.

Gradient Magnitude Opacity Modulation in Dual 3D View mode (Single Volume GPU Ray Casting)
  • Volume-Following Mode

In Volume-Following mode, color and opacity transfer functions in the VolumeRendering module will follow window/level and threshold settings in the Volumes module for a uniform appearance on both slice view and 3D volume rendering view. To use, check VolumeRendering module -> Rendering panel -> Volume Property tab -> Follow Volumes Module check button.

In Volume-Following mode, window/level plus lookup table in Volumes module will be used to set colors in volume rendering. Threshold in Volumes module will be used to set opacity in volume rendering. Color and opacity transfer function editor also are disabled in Volume-Following mode because we are following volumes module now.

Volume Rendering in Volume-Following Mode

Tutorials

Links to tutorials explaining how to use this module:

  • Tutorial 1
    • Data Set 1

Quick Tour of Features and Use

A list panels in the interface, their features, what they mean, and how to use them. For instance:

  • Input panel:
    • Monitor scene loading event If unchecked the Volume rendering module will not monitor scene loading event. If a scene contains volume rendering node and a very large dataset, loading this scene on machine without volume rendering capabilities, can cause errors (a crash or a frozen machine -- if the machine runs out of memory).
    • Scenario A volume rendering scenario is defined by input set of bg, fg and label map volumes.
    • ROI The single ROI node for the current scenario. The ROI can be defined using volume rendering and then used to crop a volume in the crop volume module.
    • Background Volume This specifies the default volume for volume rendering. Volume input, volume property, and presets for background.
    • Foreground Volume This is used only in experimental NCI GPU Ray Casting (which is one of the Rendering Methods in the Rendering Techniques Tab). Otherwise this volume is ignored. Volume input. volume property, and presets for foreground. Works only with the experimental NCI GPU Raycasting Multi-volume (experimental)
    • Label Map This volume is experimental. (Alex -- can you refine?) Volume input, volume property, and presets for label map.
  • Rendering panel: This panel is Dynamically generated panel when valid input is selected.
    • Techniques Under the techniques tab, there are currently five rendering methods available. Each of these are described below.
      • Rendering Method
        • VTK CPU Ray Casting: Uses the CPU for volume rendering, is parallelized and can take advantage of multi-core capabilities. Uses level-of-detail approach where low resolution is rendered while moving, and high resolution is rendered once motion ceases. Allows zbuffer compositing with texture map cross sections and triangulated surface model. Do not use semi-transparent surface models (Yanling, is this true?).
          • Method Configuration Panel:
        • VTK GPU Ray Casting: Uses GPU accelerated ray caster. Allows z-buffer compositing... etc. Do not use semi-transparent surface models (Yanling, is this true?). This is currently working on Linux and Win32, but not on Mac due to a bug in the OpenGL drivers.
          • Method Configuration Panel:
        • VTK OpenGL 3D Texture Mapping: Uses texture mapping approach to volume rendering compared to the two render methods above, it has slicghtly lower performance and slightly coarser appearance.
          • Method Configuration Panel:
        • NCI GPU Ray Casting: This is a GLSL-based ray caster with several experimental mapping techniques. No z-buffer compositing. Good performance and quality. No hardware restrictions on this method.
        • Multi-volume GPU Ray Caster: This allows two volumes to be volume rendered and performs an alpha blend between the two volumes. This method requires enough graphics memory to hold all data, or a crash or frozen machine may occur.
          • Method Configuration Panel:
      • GPU Memory Size: A user must hand-select the amount of graphics memory in your machine. The setting will be remembered for your next session. Find this information, (Alex, can fill in for each platform, or for some?)
      • Expected Interactive Frame Rate: This slider forces faster render speeds for the GPU mappers at the expense of quality. (This feature may be removed).


      • Allow user to select mapper to use.
    • Volume Property
    • ROI
    • Misc
User Interface

Development

Notes from the Developer(s)

Algorithms used, library classes depended upon, use cases, etc.

Dependencies

Other modules or packages that are required for this module's use.

Tests

On the Dashboard, these tests verify that the module is working on various platforms:

Known bugs

Links to known bugs in the Slicer3 bug tracker


Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Links to the module's source code:

Source code:

Doxygen documentation:

More Information

Acknowledgment

Include funding and other support here.

References

Publications related to this module go here. Links to pdfs would be useful.