Edit this page

NA-MIC Project Weeks

Back to Projects List

VTK.js Multi-volume Volume Rendering

Key Investigators


The Open Health Imaging Foundation (OHIF) Viewer uses VTK.js for multi-planar reformatting (MPR). We use thin-slice volume rendering to implement MPR in the OHIF Viewer. In order to support PET/CT image fusion with overlaid segmentation label maps, we need to implement multi-volume rendering in VTK.js. At present, multi-volume rendering sort of works but only for two volumes.


Our goal is to add proper support for multi-volume volume rendering to VTK.js.

Approach and Plan

  1. Evaluate how VTK C++ implements multi-volume rendering
  2. Make similar changes to the VTK.js JavaScript / WebGL implementation
  3. Clean up terminology in VTK.js’ RenderWindow

Progress and Next Steps

Plans from early meetings

Notes here: https://docs.google.com/document/d/1160z3fKJB6JfmT_EAlPRbqA5dD9B5iNfe08JctMUWOE/edit?usp=sharing


Current state

This is what rendering two cubes currently looks like in VTK.js. It should turn purple at the intersection of the cubes if they were both being sampled and mixed along each step of the ray. SingleVolumeMapperCubes

Work-in progress Multi-volume Renderer

MultiVolumeMapperCubes VolumeMapperComparisons

Background and References