Difference between revisions of "Documentation/Labs/OpenGLFilters"
From Slicer Wiki
Line 2: | Line 2: | ||
The reason behind this page is trying to coordinate the various projects regarding this subject. | The reason behind this page is trying to coordinate the various projects regarding this subject. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Meetings = | = Meetings = | ||
Line 53: | Line 45: | ||
** Timeline: in 2-3 weeks after his vacation | ** Timeline: in 2-3 weeks after his vacation | ||
** Most likely derived from <code>vtkImageAlgorithm</code>, the class will integrate feature from [https://github.com/Kitware/VTK/blob/master/Rendering/OpenGL/vtkGaussianBlurPass.h VTK/Rendering/OpenGL/vtkGaussianBlurPass.h] to facilitate the use of custom shaders to implement GPU based filters. | ** Most likely derived from <code>vtkImageAlgorithm</code>, the class will integrate feature from [https://github.com/Kitware/VTK/blob/master/Rendering/OpenGL/vtkGaussianBlurPass.h VTK/Rendering/OpenGL/vtkGaussianBlurPass.h] to facilitate the use of custom shaders to implement GPU based filters. | ||
+ | |||
+ | |||
+ | = References = | ||
+ | |||
+ | * [[Developer_Meetings/20150609]] | ||
+ | * [[Developer_Meetings/20150901]] | ||
+ | * https://github.com/pieper/CommonGL/tree/master/GLFilters | ||
+ | * http://www.vtk.org/Wiki/Shader_In_VTK | ||
+ | * [https://github.com/Kitware/VTK/blob/52d45496877b00852a08a5b9819d109c2fd9bfab/Imaging/General/vtkImageGaussianSmooth.h VTK/Imaging/General/vtkImageGaussianSmooth.h] |
Revision as of 19:33, 9 June 2016
Home < Documentation < Labs < OpenGLFiltersHere 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.
Contents
Meetings
9th June 2016
Attended by: Davide Punzo, Jean-Christophe Fillion-Robin, Ken Martin.
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.
Use Case
Based on the Steve Pieper implementation of the classes:
vtkOpenGLTextureImage vtkOpenGLShaderComputation
here an Use case:
https://github.com/Punzo/SlicerAstro/tree/master/Smoothing/Logic https://www.overleaf.com/read/jbxxsqtctpgv
Full integration in VTK
For a full integration of the openGLfilters pipeline in VTK, it will be ideal to have a general purpose class:
VTKOpenGLImageAlgorithm
this class will have the duty to:
- handle the I/O communication between the
vtkImageData
and 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).
Next steps
- Talk with Steve and getting his feedback.
- Ken will be very happy to contribute a base class
vtkOpenGLImageAlgorithm
- 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.