Difference between revisions of "Slicer3:Volume Rendering"

From NAMIC Wiki
Jump to: navigation, search
Line 38: Line 38:
 
* MIP (Maximum Intensity Projection)  
 
* MIP (Maximum Intensity Projection)  
 
**[http://en.wikipedia.org/wiki/Maximum_intensity_projection Wikipedia]
 
**[http://en.wikipedia.org/wiki/Maximum_intensity_projection Wikipedia]
**[http://www.vtk.org/doc/release/5.0/html/a02186.html vtkVolumeRayCastMIPFunction Class Reference]
+
**[http://www.vtk.org/doc/release/5.0/html/a01399.html vtkFixedPointVolumeRayCastMapper Class Reference]
 
* CT Bone and vessel  
 
* CT Bone and vessel  
**Use histogram and tresholds, find possibilities to avoid outliers
+
**Use Hounsfield units
 +
***Bone +400->+1000
 +
***Soft tissue +40->+80
 +
***Water 0
 +
***Fat -60->-100
 +
***Lug -400->-600
 +
***-1000
 
* T1 MR Air/skin interface
 
* T1 MR Air/skin interface
 
* Label map per-label object rendering
 
* Label map per-label object rendering
**Possible starting points for this task: [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/classvtkMRMLVolumeNode.html vtkMRMLVolumeNode]
+
**Use the different MRMLNodes: [http://www.na-mic.org/Slicer/Documentation/Slicer3/html/classvtkMRMLVolumeNode.html vtkMRMLVolumeNode]
***[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/classvtkMRMLVolumeNode.html vtkMRMLVolumeNode]
 
***[http://www.vtk.org/doc/release/5.0/html/a01551.html vtkImageMapToRGBA]
 
  
 
Slicer3 module interface:
 
Slicer3 module interface:

Revision as of 14:18, 31 August 2007

Home < Slicer3:Volume Rendering

Overview

Test the module

  • Copy the following folder from the svn repository http://www.na-mic.org/svn/Slicer3/trunk/Base/GUI/Testing/VolumeRendering to the following path <YourSlicerBuildDir>\lib\Slicer3\Modules\Packages\VolumeRendering.
  • Restart Slicer
  • Load a MRML-Scene (e. g. tutorial.xml from the Tutorial Dataset)
  • Go to the module dropdown and select VolumeRendering
  • Select "all" (if you use the tutorial dataset) as the Source Volume and click LoadNode =>The volume rendered Volume should appear.
  • Play with the transfer function etc.
  • Note: After changing a setting please click on the volume one time to load the new settings

Latest results and limitations

Description

  • Loading of MRML-Nodes is possible
  • At the moment no removing of MRML-Nodes possible
  • Change properties
  • Calculate transfer functions automatically
  • No performance tuning at all
  • Shading

Screenshots

volume rendered label map of the tutorial dataset
volume rendered label map of the tutorial dataset, shading enabled

next Tasks

  • Develop different algorithms for labelmap and grayscale volumes -----algorithm for grayscale is missing => new task: presets
  • Find Presets, see also at goals
  • Try to reduce artefacts in labelmaps by using several RGB points in the mapping function -----done, artefacts still there?
  • Implement a possibility to change between different volumes during runtime -----done
  • Have a closer look on the final calculation of the renderer
  • Detect if video card can use 3d Texture Mapping or not, if not use MIP, -----done, there are two new Buttons to simulate having openGl support or not. standard preset is now MIP (performance issue)
  • Add possiblity to change opacity (for labelmaps) -----done, slider
  • Include code to make all models invisible(Good for testing) -----done, new button
  • Have a closer look on the gradient opacity mapper, when using label maps

Goals

Volume rendering presets :

Slicer3 module interface:

  • Select from loaded volumes
  • Specify preset transfer functions or use KWWidgets tools

Slicer3 internals:

  • Correct coordinates including transforms
  • Level of detail rendering
  • Proper integration with surface rendering

Different Volume Rendering Algorithms

  • RayCast
  • 2D Texture Mapping
  • 3D Texture Mapping
  • ...

Wish List

  • 2D Transfer functions - may require specialized opengl code integrated with VTK. Talk with Gordon about latest work from Utah.
  • use glTexSubImage3D so that incremental changes to the volume can be quickly reflected