Slicer3:Volume Rendering
From NAMIC Wiki
Home < Slicer3:Volume Rendering
Contents
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
next Tasks
- Develop different algorithms for labelmap and grayscale volumes
- 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
- Add possiblity to change opacity (for labelmaps)
- Include code to make all models invisible(Good for testing) -----done
- Have a closer look on the gradient opacity mapper, when using label maps
Goals
Volume rendering presets :
- MIP (Maximum Intensity Projection)
- CT Bone and vessel
- Use histogram and tresholds, find possibilities to avoid outliers
- T1 MR Air/skin interface
- Label map per-label object rendering
- Possible starting points for this task: vtkMRMLVolumeNode
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