High-Quality Volume Graphics on Consumer PC Hardware

Post on 04-Feb-2016

31 views 0 download

Tags:

description

High-Quality Volume Graphics on Consumer PC Hardware. Klaus Engel. Joe Kniss. Markus Hadwiger. Christof Rezk-Salama. a ( f ). R G B ( f ). Shading, Compositing…. Human Tooth CT. Map data value f to color and opacity. R G B. a. f. ~. ~. Optical Properties. Color (RGB) - PowerPoint PPT Presentation

Transcript of High-Quality Volume Graphics on Consumer PC Hardware

High-Quality Volume Graphics on Consumer PC Hardware

High-Quality Volume Graphics on Consumer PC Hardware

KlausEngel

JoeKniss

MarkusHadwiger

ChristofRezk-Salama

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Human Tooth CT

(f)RGB(f)

f

RGB

Shading,Compositing…

Map data value f to color and opacity

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Optical PropertiesOptical PropertiesColor (RGB)

Emissive term

1

0

)(r

r

dxxC

xxCn

i

i 0

)(

n

i

ic0

~~

=

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Optical PropertiesOptical PropertiesAlpha (a.k.a. opacity or extinction)

Attenuates light based on density

0

1

)(expr

r

dxxA ~~

n

i

i xxxA0

)(exp

n

i

i xxxA0

)(exp=

=)( ixA

i e

n

i

i

0

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Optical PropertiesOptical PropertiesTraditional Volume Rendering Equation

Emission & absorption

00

1

)(exp*)(r

s

r

r

dxxAdssC

N

i

N

ij

iic0 1

* ~~

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Optical PropertiesOptical PropertiesScale alpha values based on sample rate (sr)

new

old

sr

sr

oldnew )1(1

1.3 .7

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionTransform scalar data value into optical propertiesUse optical properties to solve integralVery easy to implement

Data is a textureTransfer function is a lookupCompute Riemann sum using “over operator”

},,,{)),,(( BGRzyxfT

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionPre-classification Post-classification

Transfer function evaluated before interpolation, i.e.

interpolation of colors not data

Transfer function evaluated after interpolation, i.e. data is

interpolated first

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ImplementationImplementation

Two choices:Texture Lookup Table

glColorTable*Varies depending on hardware, may require a special texture data formatFast

Dependent Texture ReadVery hardware dependentBecoming more general, see OpenGl 2.0Slower but more flexible…

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionProblem:

No shape or depth queuesNo shading.

f(x,y,z)

alphacolor

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionSolution: Faux Shading

Ramp color to black with alphaSilhouette edges

f(x,y,z)

alphacolor

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionBetter: Surface Shading

Slower, requires normalMore flexible

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionBetter: Surface Shading

Slower, requires normalMore flexibleFaux shading enhances

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionProblem: Can’t surface shade homogeneous regions

Need good gradientsSensitive to noise

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionSolution: Surface scalar (s)

Only shade high gradient magnitudes:

Or, add s to TFInterpolate…

2||)||1(1 fs

cscshadingsCout )1()(

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionProblem: How did the light get there?

No attenuation through volumeNot realistic!

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer FunctionTransfer FunctionSolution: Shadows

Better depth queuesDramatic effects

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadows

Eye

Image planer0

r1

Light

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

00

1

0

)(exp*)(exp*)(r

s

r

r

l

s

L dxxAdttAIdssC

ShadowsShadows

Eye

Image planer0

r1

Sample ri (s)

l0

N

i

N

ij

i

L

k

kLi Ic0 1

*

0

*

IL

~~

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadowsImplementation:

2 passesAttenuate from the light sourceRender from the eye

Store light attenuation in second volumeMultiply color by attenuation from shadow volume

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadowsDisadvantages:

Difficult to build shadow volume on the cardSlow to build off the cardAdditional volume requiredAttenuation leakageBlurry shadow boundariesLow resolution shadows!

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadowsAlternative: Incremental shadows

Generate shadows one slice at a timeOnly use a 2D bufferImage space shadow computationAll on cardHalf angle slicing

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadows

Eye

Slicing from light’s point of view

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadows

Eye

Slicing from eye’s point of view

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Incremental ShadowsIncremental Shadows

Eye

Half angle slicing: good from either

point of view

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Incremental ShadowsIncremental Shadows

Similar aspect ratio from both points of

view

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Incremental ShadowsIncremental Shadows

*

Slice pass 1

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Incremental ShadowsIncremental Shadows

Slice pass 2

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Incremental ShadowsIncremental ShadowsAdvantages:

Screen space shadowsNo leakageUse render to texture to optimizeShades perturbed volumesSimple implementation

Disadvantages:Aliasing at sharp opacity changesFix with slightly larger light buffer

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadowsProblem: Shadows still too dark

Direct attenuation is inadequateNeed to handle higher order light transport effects

Shadows

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ShadowsShadowsSolution: Translucency

One consequence of light scatteringSmoke, clouds, skin, wax….

Shadows Translucent

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencyWax:

ShadowsReal

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencyWax:

ShadowsReal Translucent

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencyAdd indirect attenuation

dsdxxAsIsIsCr

s

r

r

Id

00

1

)(exp*)()(*)(

0

)(exp)(l

s

Ld dttAIsI

)()(exp)(0

blurdttAIsIl

s

ILI

Direct attenuation, same as shadows

Blurred indirect attenuation, includes an indirect alpha

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucency

Direct (Id) and indirect (Ii) attenuation

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencyHow?

Same as shadows (two light buffers)Sample previous light buffer multiple times for blurPing-pong blendingStore indirect in a color componentSum direct and indirect in fragment shader for the eye passOnly use direct attn. for eye pass

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencyProblem: Still doesn’t look right

ShadowsReal Translucent

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencySolution: add spectral attenuation

Real Translucent w/spectral attn.

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencySpectral attenuation:

Attenuate some colors more than othersSpectral indirect attn. is simplestNeed separate alpha for RGBStore in RGB components of light buffer

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TranslucencyTranslucencyIndirect alpha vs. transport color

Alpha:

Transport: =1-alpha

Transport color is easier to specify

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Optical PropertiesOptical PropertiesRecap:

Reflective color/Emission (RGB)Direct attenuation/alpha (A)Surface scalar (s)Indirect attenuation (Ar,Ag,Ab)

Others?Scattering, absorption, phase function,

density, emission, index of refraction…

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionSpecification

Simple, easyExpressiveGuided

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionTypical: 1D linear ramps

Independent R,G,B,A controlDifficultTrial and error

alpha

f(x,y,z)

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionProblem:

RGB = bad color space for humansNo concept of features

alpha

f(x,y,z)

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionBetter: set color at control points

Use HSV or HLS color spacesSimplified interfaceStill no guidancealpha

f(x,y,z)

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionGuided techniques:

Design GalleriesThumbnailsSemi-AutomaticDual-domain interaction

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Design GalleriesDesign GalleriesTreat TF and rendering as a high dimensional parameter spaceStochastically sample spaceCluster images based on fitnessSelect best looking image

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Design GalleriesDesign Galleries

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Design GalleriesDesign GalleriesComputationally expensiveDifficult to implementNot guided by dataset specificsOnly handles 1D transfer functions

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ThumbnailsThumbnailsVisual history of changesShow important regions of TFShow effects of potential changes

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ThumbnailsThumbnailsspreadsheets

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ThumbnailsThumbnails

Parameterization

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Semi-automaticSemi-automaticVolumetric edge detectionUse first and second derivativesBuild histogram volumesUse simplified interfaceGenerate 1D or 2D TFs

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Semi-automaticSemi-automatic

Position of boundary center

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Semi-automaticSemi-automatic

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Semi-automaticSemi-automaticIdentifies data ranges of boundariesStill requires hand-editingNot really an interactive processDemonstrates the value of histograms

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionWhat is a 2D transfer function

Multiple values per sample point2D lookup tableEach value is an axis of TFBetter specificityMore complicated to use

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer function

( )RGB( )

Generalize…

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer function

( , )RGB( , )

Modify…

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer function

( , )RGB( , )

Modify…

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer function

Seconddirectionalderivative

measured withHessian

0

+

-

RGB ( , ,

)

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer function

0

+

-

RGB ( , ,

)

Done

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionMulti-dimensional TFs

Data value, gradient magnitude, second derivativeMultivariate, i.e. multiple values Implement as dependent texture read, 1D, 2D, 3D texture for TF

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer function

Multiple scans Color data Multiple variables

MRI-T1,T2,PD Cryosection Simulation

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionProblem: How do we interact with a higher dimensional TF?

Larger parameter spaceUnintuitive feature identificationGreater demands on user interface

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionSolution: It is a process!!

Data set guidanceImproved classificationIntuitive feature identification

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

“Default” transfer functionInitial

1

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ProbingInitial

Explore

12

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer function widgetManualDual-domain interaction

Initial

Explore

Specify

12

3

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Use widgets to tune the transfer functionInitial

Explore

Specify

Refine

12

3

4

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Understanding from immediate feedbackInitial

Explore

Specify

Refine

Interactive

12

3

4

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

ClassificationClassificationDiscrete featuresBasic functionsDirect manipulation widgets

V3 slider(s)

V2

V1

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

GuidanceGuidanceHistograms

Red

Green

Blu

e

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

GuidanceGuidanceProbing

Identify featuresin transfer function

Chapel Hill CT

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

GuidanceGuidanceDual-domain interaction

Classify features by pointing at them

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

RefinementRefinementManipulate well defined control points

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

Transfer functionTransfer functionAdvantages:

Better feature discrimination

High-Quality Volume Graphics on Consumer PC Hardware

Course 42 Joe M. Kniss

TechniqueTechniqueAnimated transfer function