100 likes | 263 Views
Slicer3 Rendering Pipeline. Study documents Raimundo Sierra. Nomenclature:. Datavolume:. Slicer3 normal mode:. Full screen mode:. p y. I 1. y. p y. I 1. I 2. I 3. p x. p x. z. Normal mode, Px, Py typically: 200x200 O(px* py) ≈ 40k pixels Full screen: 1000x1000 ≈ 1M pixels
E N D
Slicer3 Rendering Pipeline Study documents Raimundo Sierra
Nomenclature: 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
Slicer 3 Rendering Pipeline GUI, Programming GUI Navigation Image Processing Data Volume Image Processing Image Processing Rendering Display vtkSlicerSliceLayerLogic.h vtkSlicerSliceLogic.h GPU CPU Painting?
Image Processing DetailsvtkSlicerSliceLayerLogic.h Extract Alpha Alpha logic Append Cast Reslice Threshold Append Reslice A Thres-hold Extract Lumi-nance Map to colors RGB 2D 3D O(x*y*z) O(px* py) = SLOW! + standard VTK filters ─ 3D operations
Image 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(x*y*z) O(px* py)
Image 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)
Slicer 3 Rendering Pipeline GUI, Programming GUI Navigation Image Processing Data Volume Image Processing Image Processing Rendering Display vtkSlicerSliceLayerLogic.h vtkSlicerSliceLogic.h GPU CPU Painting?
Image Processing DetailsvtkSlicerSliceLogic.h Append Foreground Blend Append Background Append Labelmap
Slicer 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
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 Current Rendering Pipelinevs. GPU Based rendering