Title: Slicer3 Rendering Pipeline
1Slicer3 Rendering Pipeline
- Study documents
- Raimundo Sierra
2Nomenclature
Datavolume
Slicer3 normal mode
Full screen mode
py
I1
y
py
I1
I2
I3
px
px
z
Normal mode, Px, Py typically 200x200 ? O(px
py) 40k pixels Full screen 1000x1000 1M
pixels Factor 25 leads to perceivable slowdown,
from 16ms/rendering to 200 ms
x
3Slicer 3 Rendering Pipeline
GUI, Programming
GUI Navigation
Image Processing
Data Volume
Image Processing
Image Processing
Rendering
Display
vtkSlicerSliceLayerLogic.h vtkSlicerSliceLogic.h
GPU
CPU
Painting?
4Image Processing Details vtkSlicerSliceLayerLogic
.h
Extract Alpha
Alpha logic
Append
Cast
Reslice Threshold
Append
Reslice
A
Thres-hold
Extract Lumi-nance
Map to colors
RGB
2D
3D
O(xyz)
O(px py)
SLOW!
standard VTK filters - 3D operations
5Image Processing DetailsExtended Reslice
New output ImageData BackgroundImageMask
Alpha logic
Cast
Append
Reslice
Thres-hold
A
RGB
Map to window level colors
Map to colors
2D
3D
faster - filter with additional source
O(xyz)
O(px py)
6Image Processing DetailsNext ExtractImage
Alpha logic
Cast
Append
Reslice
Thres-hold
A
RGB
Map to window level colors
Map to colors
only one iteration through data -
flexibility? - still O(px py)
7Slicer 3 Rendering Pipeline
GUI, Programming
GUI Navigation
Image Processing
Data Volume
Image Processing
Image Processing
Rendering
Display
vtkSlicerSliceLayerLogic.h vtkSlicerSliceLogic.h
GPU
CPU
Painting?
8Image Processing Details vtkSlicerSliceLogic.h
Foreground
Append
Blend
Background
Append
Labelmap
Append
9Slicer 3 Rendering Pipeline
GUI, Programming
GUI Navigation
Image Processing
Data Volume
Image Processing
Rendering
Display
Rendering
GPU
CPU
Painting?
10Slicer 3 Rendering PipelineGPU Based rendering
Image Processing
Data Volume
Image Processing
Rendering
Display
GPU
CPU
- Submit complete datavolume to the GPU
(glTexture3D) - Extract slice by specifying plane with associated
texture coordinates (glVertex, glTextureCoord) - Render textured plane in different rendering
targets (slice windows 3D window
11Current Rendering Pipelinevs. GPU Based rendering
- Pros
- Speed Use of parallel rendering pipeline of GPU
- Cons
- Limited GPU memory in particular when volume
consists of foreground, background, and labelmap
datasets - Implementation
- 3D texture support in VTK
- Large/significant changes in existing code