Difference between revisions of "Modules:VolumeRendering-Documentation-3.6"
(23 intermediate revisions by 3 users not shown) | |||
Line 32: | Line 32: | ||
===Use Cases, Examples=== | ===Use Cases, Examples=== | ||
− | * Distance Color Blending in NCI GPU Ray Casting | + | * '''Distance Color Blending in NCI GPU Ray Casting''' |
− | Distance Color Blending will make voxels with longer distance to eye/camera | + | Distance Color Blending will make voxels with longer distance to eye/camera more darker than voxels with shorter distance. The effect helps to reveal depth information in volume. |
− | * Pausing VolumeRendering module in scene loading | + | |
+ | A "Dist. Color Blending" slider bar is available in NCI GPU Ray Casting parameter panel to adjust the effect. Higher value indicates stronger darkening effect. Setting the value to be 0 will turn off the effect. | ||
+ | |||
+ | Below are two images of the same volume with identical transfer functions. The first one is rendered with the feature off and the second one is rendered with the feature on. On the second image, darker voxels indicate these voxels are more far away from eye/camera. | ||
+ | |||
+ | {| | ||
+ | |[[Image:DistColorBlendingOff.png|thumb|320px|Distance Color Blending Off]] | ||
+ | |[[Image:DistColorBlendingOn.png|thumb|320px|Distance Color Blending On]] | ||
+ | |} | ||
+ | |||
+ | The effect is available on Composite With Shading, Composite With Pseudo Shading, and Gradient Magnitude Opacity Modulation techniques. | ||
+ | |||
+ | * '''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. | 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 | + | * '''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. | 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). | + | 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), GMOM (bg) + GMOM (fg). |
+ | |||
+ | '''Important:''' when using Multi-Volume GPU Ray Casting, both bg and fg volume need to have '''same data type'''. Please use Cast Image filter to cast image with smaller data type to larger data type. For example, if bg volume is short and fg volume is float, use Cast Image filter to cast bg volume to be float. Using bg and fg volumes with different data type may cause Slicer to crash. | ||
+ | {| | ||
+ | |[[Image:PET-CT.png|thumb|320px|PET-CT Visualization. Gray scale colors are from PET volume. Non-Gray scale colors are from CT volume. GMOM rendering technique used for both bg and fg.]] | ||
+ | |[[Image:PET-CT.gif|thumb|320px|PET-CT Visualization. Gray scale colors are from PET volume. Non-Gray scale colors are from CT volume. GMOM rendering technique used for both bg and fg.]] | ||
+ | |} | ||
{| | {| | ||
Line 48: | Line 66: | ||
|} | |} | ||
− | * Dual 3D View mode | + | * '''Dual 3D View mode''' |
− | VTK GPU Ray Casting doesn't support the Dual 3D View mode. | + | **The NCI GPU Ray casting does support the Dual 3D View mode. |
+ | **The VTK GPU Ray Casting doesn't support the Dual 3D View mode. | ||
{| | {| | ||
Line 55: | Line 74: | ||
|} | |} | ||
− | * Volume-Following Mode | + | * '''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, 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. | ||
Line 85: | Line 104: | ||
'''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 TAB ''' Under the techniques tab, there are currently five rendering methods available. Each of these are described below. | * '''Techniques TAB ''' Under the techniques tab, there are currently five rendering methods available. Each of these are described below. | ||
+ | ** Intro: | ||
+ | ***VTK CPU raycasting can do both volume rendering and z-buffer compositing. The same is true for the VTK GRPU ray casting and the VTK OpenGL 3D Texture mapping methods, the latter sometimes produces a "rougher" looking image. The NCI GPU raycaster offers good quality and speed, but does not allow for z-buffer compositing. That means that the volume rendering cannot be combined with a triangulated surface model or a cross section in the 3D view. | ||
+ | *** In general you want dedicated GPUs with dedicated GPU memory, if using GPU accelerated methods. Computers that are labeled "gaming computers" will usually have the right type of hardware. Depending on the size of data that is rendered, you will need more GPU memory. If your data set is too large for your memory, performance will drop considerably. It might take some time before the rendering is shown. | ||
** Rendering Method | ** 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 non-transparent triangulated surface model. | *** '''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 non-transparent triangulated surface model. | ||
Line 102: | Line 124: | ||
****** Gradient Magnitude Opacity Modulation: Enhances boundary in volume by multiplying gradient magnitude with voxel opacity | ****** Gradient Magnitude Opacity Modulation: Enhances boundary in volume by multiplying gradient magnitude with voxel opacity | ||
****** Illustrative Context Preserving Exploration: Automatic "open up" boundaries that are closer to viewer. Two parameters ICPE scale and ICPE smoothness controls "open up" depth and width. | ****** Illustrative Context Preserving Exploration: Automatic "open up" boundaries that are closer to viewer. Two parameters ICPE scale and ICPE smoothness controls "open up" depth and width. | ||
+ | ***** Dist. Color Blending: Enhancing depth info in volume rendering by darkening voxels based on their distance to user/camera. Voxels more far away will be darken more. | ||
***** ICPE Scale: parameter for Illustrative Context Preserving Exploration | ***** ICPE Scale: parameter for Illustrative Context Preserving Exploration | ||
***** ICPE Smoothness: parameter for Illustrative Context Preserving Exploration | ***** ICPE Smoothness: parameter for Illustrative Context Preserving Exploration | ||
***** Vol. Depth Peeling: Starting volume rendering once voxel with high intensity than the threshold value has been hit by viewing ray. Helps to reveal close objects with similar intensity. | ***** Vol. Depth Peeling: Starting volume rendering once voxel with high intensity than the threshold value has been hit by viewing ray. Helps to reveal close objects with similar intensity. | ||
− | *** '''NCI GPU Ray Casting (Multi-Volume):''' 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. ''If you use this method, and select a foreground volume, you need to set the "Fg|Bg Ratio" slider in "NCI GPU Ray Casting (Multi-Volume)" section to see the rendering of the foreground volume. By default, the foreground volume is completely transparent.'' | + | *** '''NCI GPU Ray Casting (Multi-Volume):''' ''Note: this is a newly added mode that should be considered experimental.'' 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. ''If you use this method, and select a foreground volume, you need to set the "Fg|Bg Ratio" slider in "NCI GPU Ray Casting (Multi-Volume)" section to see the rendering of the foreground volume. By default, the foreground volume is completely transparent.'' Both bg and fg volumes need to have '''same data type'''. See above Use Case and Example section for details. |
**** Method Configuration Panel: | **** Method Configuration Panel: | ||
***** Technique (Bg): rendering techniques for bg volume. | ***** Technique (Bg): rendering techniques for bg volume. | ||
Line 111: | Line 134: | ||
***** Fusion: bg/fg blending method | ***** Fusion: bg/fg blending method | ||
***** Bg|Fg Ratio: blending weights for bg and fg volumes in. | ***** Bg|Fg Ratio: blending weights for bg and fg volumes in. | ||
− | ** 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 | + | ** 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 in video card driver control panel on your computer. |
− | ** | + | ** Quality Control: Defines mapper rendering behavior |
+ | *** Adaptive: Effect on all mappers. When user using mouse button to do interactions, all mappers automatically switch to the frame rate setting in '''Interactive Speed'''. After user release mouse button to finish interaction, all mappers switch back to highest quality rendering. | ||
+ | *** Maximum: Force highest quality rendering on all mappers except VTK OpenGL Texture Mapping | ||
+ | *** Fixed Framerate: Force mapper to user fixed frame rate setting in '''Interactive Speed'''. Effect on NCI mappers only. | ||
+ | *** Interactive Speed: defines the frame rate to be used during user interaction, for example, rotate the volume using mouse left button. | ||
|[[Image:3.6VolrendRenderingTechniques.png|thumb|280px|User Interface]] | |[[Image:3.6VolrendRenderingTechniques.png|thumb|280px|User Interface]] | ||
|- | |- | ||
Line 132: | Line 159: | ||
*ROI box can be made visible or invisible | *ROI box can be made visible or invisible | ||
*check box allows to apply to the visualization or not. | *check box allows to apply to the visualization or not. | ||
+ | *"Fit ROI to Volume" button is helpful when ROI default range is smaller than volume. | ||
|[[Image:3.6VolrendRenderingROI.png|thumb|280px|User Interface]] | |[[Image:3.6VolrendRenderingROI.png|thumb|280px|User Interface]] | ||
|- | |- |
Latest revision as of 15:28, 26 July 2010
Home < Modules:VolumeRendering-Documentation-3.6Return to Slicer 3.6 Documentation
Module Name
Volume Rendering
General Information
Module Type & Category
Type: Interactive
Category: Base
Authors, Collaborators & Contact
- Yanling Liu, SAIC-Frederick/NCI-Frederick, Alex Yarmarkovich, Isomics, SPL
- Origianl work: Andreas Freudling, Student Intern at SPL (freudling@bwh.harvard.edu), Steve Pieper, Isomics
- 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. To learn about volume rendering start with Wikipedia.
Usage
Use Cases, Examples
- Distance Color Blending in NCI GPU Ray Casting
Distance Color Blending will make voxels with longer distance to eye/camera more darker than voxels with shorter distance. The effect helps to reveal depth information in volume.
A "Dist. Color Blending" slider bar is available in NCI GPU Ray Casting parameter panel to adjust the effect. Higher value indicates stronger darkening effect. Setting the value to be 0 will turn off the effect.
Below are two images of the same volume with identical transfer functions. The first one is rendered with the feature off and the second one is rendered with the feature on. On the second image, darker voxels indicate these voxels are more far away from eye/camera.
The effect is available on Composite With Shading, Composite With Pseudo Shading, and Gradient Magnitude Opacity Modulation techniques.
- 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), GMOM (bg) + GMOM (fg).
Important: when using Multi-Volume GPU Ray Casting, both bg and fg volume need to have same data type. Please use Cast Image filter to cast image with smaller data type to larger data type. For example, if bg volume is short and fg volume is float, use Cast Image filter to cast bg volume to be float. Using bg and fg volumes with different data type may cause Slicer to crash.
- Dual 3D View mode
- The NCI GPU Ray casting does support the Dual 3D View mode.
- The VTK GPU Ray Casting doesn't support the Dual 3D View mode.
- 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.
Tutorials
Quick Tour of Features and Use
|
|
Rendering panel: This panel is Dynamically generated panel when valid input is selected.
|
|
Volume Property Tab
|
|
ROI Tab
|
|
Misc Tab
|
Development
Notes from the Developer(s)
Dependencies
None.
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
Source code: http://viewvc.slicer.org/viewcvs.cgi/branches/Slicer-3-6/Modules/VolumeRendering/?rev=13274
Doxygen documentation: http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classes.html
More Information
Acknowledgment
This work is supported by NA-MIC, NAC, BIRN, NCIGT, and the Slicer Community. See http://www.slicer.org for details. The VolumeRendering module is implemented by Yanling Liu, NCI-Frederick/SAIC-Frederick, Andreas Freudling, Student Intern at SPL, BWH (Ron Kikinis) and Alex Yarmarkovich, Isomics Inc. (Steve Pieper). Some of the transfer functions were contributed by Kitware, Inc. (VolView)".