Slicer3 Rendering Pipeline

Post on 30-Dec-2015

35 views 0 download

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

Slicer3 Rendering Pipeline

Study documents

Raimundo Sierra

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:

Slicer 3 Rendering Pipeline

Image Processing

Data Volume

Image Processing

Rendering Display

GUI,

Programming

GUI

Navigation

GPUCPU

Painting?

Image Processing

vtkSlicerSliceLayerLogic.hvtkSlicerSliceLogic.h

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!

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

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)

Slicer 3 Rendering Pipeline

Image Processing

Data Volume

Image Processing

Rendering Display

GUI,

Programming

GUI

Navigation

GPUCPU

Painting?

Image Processing

vtkSlicerSliceLayerLogic.hvtkSlicerSliceLogic.h

Image Processing Details vtkSlicerSliceLogic.h

Foreground

BlendBackground

Labelmap

Append

Append

Append

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

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