Here we summarize some efforts for enabling image processing (filtering/smoothing) in VTK/Slicer using OpenGL.
The reason behind this page is trying to coordinate the various projects regarding this subject.
9th June 2016
Attended by: Davide Punzo, Jean-Christophe Fillion-Robin, Ken Martin, Utkarsh Ayachit and Robert Maynard
Based on an original idea of Steve Pieper
In order to implement efficient filtering, OpenGL solution seems the best that fits our needs:
- no requirement on external library (CUDA or OpenCL).
- performance boosting is fairly good to allow almost interactive filtering up to volume of ~10^8 voxels.
Based on the Steve Pieper implementation of the classes:
here an Use case:
Full integration in VTK
For a full integration of the openGLfilters pipeline in VTK, it will be ideal to have a general purpose class:
this class will have the duty to:
- handle the I/O communication between the
vtkImageDataand the GPU Texture using fully the VTK shader infrastructure, since the shader infrastructure is already available in VTK (safe binding, automatic versioning, etc... http://www.vtk.org/Wiki/Shader_In_VTK).
- child classes will handle different approach (e.g. multipass/iterative filtering).
Ken Martin provided this structure in VTK: 
- Talk with Steve and getting his feedback.
- Ken will be very happy to contribute a base class
- Timeline: in 2-3 weeks after his vacation
- Most likely derived from
vtkImageAlgorithm, the class will integrate feature from VTK/Rendering/OpenGL/vtkGaussianBlurPass.h to facilitate the use of custom shaders to implement GPU based filters.
- Ken wrote the base class for operation filtering on GPU 
- and he gave also an example how to use it: 
- An application of the class for filtering can also be found here: