Edit this page

NA-MIC Project Weeks

Back to Projects List

Cinematic rendering in Slicer leveraging VTK Physically Based Rendering (PBR)

Key Investigators

Project Description


Approach and Plan

  1. Review accessible offerings on cinematic rendering (VTK PBR, VTK backends: OSPRay and OptiX, omniverse, etc) that can be utilized inside Slicer.
  2. Develop prototypes showing how these can be enabled and used in Slicer.
    • Start with surface rendering (PBR, ambient occlusion, global ilumination)
    • Investigate what capabilities can be enabled for volume rendering (perhaps OSPRay).
    • Tradeoffs: Performance vs Image Quality without degrading user experience.
    • Changes to user interface, parameters tuning, simplification.
  3. Review existing Slicer modules (such as Light Module) that enhance Slicer’s rendering capabilities and evaluate how these can be included in the current effort.
  4. Evaluate how integrating these in Slicer will affect other modules such as LookingGlass, OpenXR, etc.

Progress and Next Steps

Use of vtkSSAOPass class to generate ambient occlusion (AO) for volumes:

Adapt vtkSSAOPass to create local ambient occlusion (LAO) implementation for volumes:

Through discussions with the VTK team (Timothee Chabat, Mathieu Westphal), we identified another feature which could help improve shading in volume rendering:


Image Courtesy: Gaspard Thevenon


Background and References

Related modules:

Slicer Discourse References:

  1. https://discourse.slicer.org/t/how-to-perform-3d-cinematic-rendering/7313
  2. https://discourse.slicer.org/t/is-there-interest-in-higher-quality-rendering-for-slicer/6862/5
  3. https://discourse.slicer.org/t/2021-01-19-hangout/15585/2

VTK References:

  1. VTK PBR https://www.kitware.com/vtk-pbr/
  2. PBR integration in Paraview https://www.kitware.com/physically-based-rendering-improvements-in-paraview/
  3. Related merge request for VTK https://gitlab.kitware.com/vtk/vtk/-/merge_requests/5584