high-quality volume graphics on consumer pc hardware klaus engel joe kniss markus hadwiger christof...
Post on 20-Dec-2015
215 views
TRANSCRIPT
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