|
|
(63 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | == Overview ==
| + | <big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer3:Volume_Rendering here]</font></big> |
− | ==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 [http://www.na-mic.org/Wiki/images/f/f8/Tutorial-with-dicom.zip 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===
| |
− | [[Image:VolumeRendering.jpg|thumb|500px|center|volume rendered label map of the tutorial dataset]]
| |
− | [[Image:VolumeRenderingWithShading.jpg|thumb|500px|center|
| |
− | 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
| |
− | *Add possiblity to change opacity (for labelmaps) -----done
| |
− | *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)
| |
− | **[http://en.wikipedia.org/wiki/Maximum_intensity_projection Wikipedia]
| |
− | **[http://www.vtk.org/doc/release/5.0/html/a02186.html vtkVolumeRayCastMIPFunction Class Reference]
| |
− | * 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: [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:
| |
− | * 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
| |