Slicer3 Rendering Pipeline

10
Slicer3 Rendering Pipeline Study documents Raimundo Sierra

description

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 - PowerPoint PPT Presentation

Transcript of Slicer3 Rendering Pipeline

Page 1: Slicer3 Rendering Pipeline

Slicer3 Rendering Pipeline

Study documents

Raimundo Sierra

Page 2: Slicer3 Rendering Pipeline

Nomenclature:Datavolume:

x

y

z

Slicer3 normal mode:

px

pyI1 I2 I3

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

px

pyI1

Full screen mode:

Page 3: Slicer3 Rendering Pipeline

Slicer 3 Rendering Pipeline

Image Processing

Data Volume

Image Processing

Rendering Display

GUI,

Programming

GUI

Navigation

GPUCPU

Painting?

Image Processing

vtkSlicerSliceLayerLogic.hvtkSlicerSliceLogic.h

Page 4: Slicer3 Rendering Pipeline

A

Image Processing Details vtkSlicerSliceLayerLogic.h

Reslice Threshold

Append Reslice

Extract Alpha

CastAlpha logic

AppendThres-holdExtract

Lumi-nance Map to

colors

2D3D

O(x*y*z) O(px* py)

RGB

+ standard VTK filters─ 3D operations

= SLOW!

Page 5: Slicer3 Rendering Pipeline

A

Image Processing DetailsExtended Reslice

Reslice

CastAlpha logic

Append

Thres-hold

Map to colors

2D3D

O(x*y*z) O(px* py)

RGB

Map to window level colors

New output: ImageData * BackgroundImageMask

+ faster─ filter with additional source

Page 6: Slicer3 Rendering Pipeline

A

Image Processing DetailsNext: ExtractImage

Reslice

CastAlpha logic

Append

Thres-hold

Map to colors

RGB

Map to window level colors

+ only one iteration through data─ flexibility?─ still O(px* py)

Page 7: Slicer3 Rendering Pipeline

Slicer 3 Rendering Pipeline

Image Processing

Data Volume

Image Processing

Rendering Display

GUI,

Programming

GUI

Navigation

GPUCPU

Painting?

Image Processing

vtkSlicerSliceLayerLogic.hvtkSlicerSliceLogic.h

Page 8: Slicer3 Rendering Pipeline

Image Processing Details vtkSlicerSliceLogic.h

Foreground

BlendBackground

Labelmap

Append

Append

Append

Page 9: Slicer3 Rendering Pipeline

Slicer 3 Rendering PipelineGPU Based rendering

Image Processing

Data Volume

Image Processing

Rendering Display

GPUCPU

1. Submit complete datavolume to the GPU (glTexture3D)2. Extract slice by specifying plane with associated texture coordinates

(glVertex, glTextureCoord)3. Render textured plane in different rendering targets (slice windows & 3D

window

Page 10: Slicer3 Rendering Pipeline

Current 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