2010 NAMIC Project week: Programmatic use of Volume Rendering module
- BWH: Andriy Fedorov, Johannes Schick
- NCI: Yanling Liu
- Isomics: Alex Yarmarkovich
A number of modules in Slicer use volume rendering. However, none of them is using this functionality from Volume Rendering module in Slicer.
The objective of this project is to:
- provide example code (Tcl and/or C++) that allows to use volume rendering programmatically
- confirm that all the needed functionality available from volume rendering GUI is available from Tcl/C++ interfaces
- convert the existing modules that use VTK volume rendering to use the volume rendering module functionality
Questions to study:
- difference in performance and appearance between rendering label maps and greyscale images
- GPU/CPU switch while using pure VTK volume rendering
We will go through the basic functionality needed to add volume rendering to the code:
- create volume rendering scene
- visibility on/off
- initialization of the opacity and color transfer maps
- switching between the volume rendering techniques and automatic identification of the techniques available on a given machine
Our hope is that by the end of the week this page will be self-contained for adding volume rendering to any GUI Slicer module.
Initial code for programmatic use of volume rendering is in the sandbox. Current limitation: opacity and color transfer functions cannot be adjusted programmatically.
Tcl and Python examples are available: ProgrammaticVolumeRendering in SandBox