2011 Winter Project Week: Slice View Performance
- Will, Jc, J2 - Kitware
- Luca - Orobix
- Steve - Isomics
- Jim - GE
Explore slice rendering pipeline to optimize amount of reslicing and compositing vs. opengl render time. Goal is to come up with a good vtk pipeline that can be implemented in both slicer3 and slicer4.
Currently, slices are extracted from volumes at the resolution of the slice view window. Typically these match fairly well, with, for example, a 640x480 slice image being extracted from a 512^3 volume, However in some cases one may wish to display a 256^3 volume on a 2kx2k monitor. In this case the trilinear interpolation and layer compositing operations are wasteful.
The goal it to consider introducing an intermediate resampling step at a resolution that is appropriate for the input volumes and then using the graphics hardware to do the final resample to screen space. A vtkImageActor is probably the correct class for this.
This will need to be incorporated into the ctkLightBoxManager class.
We should also look at the performance of the pipeline as separate filters and consider implementing a single filter for all the compositing and blending of layers.
Some prototyping has been done.
In Python console, type:
execfile(os.environ['Slicer_HOME'] + "/../../Slicer4/Base/Testing/Performance.py")
Last command can be repeated to measure with different volumes loaded and different window sizes.
Significant variation in performance across platforms was noted and is being investigated.