Difference between revisions of "Slicer3:Volume Rendering"
From NAMIC Wiki
Line 4: | Line 4: | ||
==Test the module== | ==Test the module== | ||
− | * | + | *Turn VolumeRenderingModule on (in cmake) |
− | + | *Compile | |
− | + | ||
− | * | ||
− | |||
− | |||
− | |||
==Latest results and limitations== | ==Latest results and limitations== | ||
===Description=== | ===Description=== |
Revision as of 16:31, 22 October 2007
Home < Slicer3:Volume RenderingContents
Overview
Archtecture/Design
Test the module
- Turn VolumeRenderingModule on (in cmake)
- Compile
Latest results and limitations
Description
- Loading changing of MRML-Nodes is possible during runtime
- At the moment no removing of MRML-Nodes possible
- Change properties (Shading, Interpolation, mapping)
- Calculate transfer functions automatically
- Performance:
- Interrupting is possible in render window.
- Interrupting somewhere else requires platform dependent coding (q.v. problems)
- Cropping is possible
Screenshots
next Tasks
ideas implemented in prototyp
- 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-----Problems, when interrupting outside renderWindow
- 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
not yet implemented in prototyp
- Have a closer look on the gradient opacity mapper, when using label maps
- Try clipping
- Add progress functionality
Problems
- Cannot load the following data
- spgr (grayscale): tutorial data set (freezes)-----fixed: problems with automatic mapping
- grayscale (greyscale): brain atlas (freezes)-----fixed:problems with automatic mapping
- seg (LabelMap): abdomen data set (not freezing, seems to render, but unvisible)-----fixed, use char as datatype, but maybe experimenting with tresholds.
- How can rendering be interrupted outside renderWindow
- Do something like vtkRenderWindow::GetEventPending
- Problem, may require platform depending code----->Could propably be fixed with tcl-wrapping
- Experiment with vtkOpenGLVolumeTextureMapper3D, check status more often, debug. add more timers.
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
- Problem with Vessels: Different contrast mediums?!
- Use Hounsfield units
- T1 MR Air/skin interface
- Label map per-label object rendering
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
- use distance maps (inlcude several components) in rendering