Skip to content

Latest commit

 

History

History
80 lines (53 loc) · 3.28 KB

File metadata and controls

80 lines (53 loc) · 3.28 KB

Back to Projects List

Programmable MultiVolume Rendering Project

Key Investigators

  • Simon Drouin (MNI)
  • Csaba Pinter (Queen's)
  • Steve Pieper (Isomics)
  • Jean-Christophe Fillion-Robin (Kitware)

Project Description

Objective

  • Review the newly exposed GLSL hooks in VTK as a mechanism to add features to Slicer's Volume Rendering
  • Possible features to explore
    • Optimized performance/quality for multiple overlapping volumes
    • Custom clipping or other rendering features
    • Adding nonlinear deformations

Approach and Plan

  • Review what's new since we discussed this last year
    • New VTK version and classes
    • New Slicer GUI
    • Other GLSL examples that we can draw from
      • IBIS / PRISM
      • STEP
  • Document existing functionality in the VTK wiki on this page and identify potential builtin variables and functions that could be added to facilitate the creation of new volumetric effects.
  • Replicate the examples presented in the PRISM paper using the improved VTK mapper.
  • Replicate the US heart rendering of Philips machine with data from Matt Joley.

Progress and Next Steps

  • Provided a proof of concept (python script) for dynamic shader editing in Slicer (see image, video and link to script below)
  • Started documenting the new volume rendering functionality of VTK here
  • Suggested improvements:
    • VTK: expose interface for setting custom uniform variables in vtkGPUOpenGLRaycastMapper
    • Slicer: Build an interface to interactively edit shader code, visualize the complete shader and display shader compilation errors.

SlicerPRISM

Prototyping Repository

Proof of concept

Result

YouTube video of SlicerPRISM in action

Another video example, with DTI data

Illustrations

Philips 3D US Chroma-depth in PRISM Depth peeling in PRISM
Edge enhancement in PRISM Decluttering in PRISM Volume carving in PRISM
Blood flow animation in PRISM

Background and References