Difference between revisions of "Slicer3:Volume Rendering"
From NAMIC Wiki
Line 19: | Line 19: | ||
===Screenshots=== | ===Screenshots=== | ||
[[Image:VolumeRendering.jpg|thumb|500px|center|volume rendered label map of the tutorial dataset]] | [[Image:VolumeRendering.jpg|thumb|500px|center|volume rendered label map of the tutorial dataset]] | ||
− | [[Image:VolumeRenderingWithShading.jpg|thumb|500px|center| | + | [[Image:VolumeRenderingWithShading.jpg|thumb|500px|center|volume rendered label map of the tutorial dataset, shading enabled]] |
− | volume rendered label map of the tutorial dataset, shading enabled]] | + | [[Image:VolumeRenderingBoneDetection.png|thumb|800px|center|shading enabled, linear interpolation, automatich mapping for bones]] |
==next Tasks== | ==next Tasks== |
Revision as of 20:11, 31 August 2007
Home < Slicer3:Volume RenderingContents
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 -----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
Problems
- Cannot load the following data
- spgr (greyscale): tutorial data set (freezes)
- greyscale (greyscale): brain atlas (freezes)
- seg (LabelMap): abdomen data set (not freezing, seems to render, but unvisible)
Goals
Volume rendering presets :
- MIP (Maximum Intensity Projection)
- CT Bone and vessel
- Use Hounsfield units
- Bone +400->+1000
- Soft tissue +40->+80
- Water 0
- Fat -60->-100
- Lung -400->-600
- Air -1000
- Use Hounsfield units
- T1 MR Air/skin interface
- Label map per-label object rendering
- Use the different MRMLNodes: 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