2010 NAMIC Project week: Programmatic use of Volume Rendering module

From NAMIC Wiki
Jump to: navigation, search
Home < 2010 NAMIC Project week: Programmatic use of Volume Rendering module

Key Investigators

  • 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

Approach, Plan

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.

Delivery Mechanism

Tcl and Python examples are available: ProgrammaticVolumeRendering in SandBox