Interactive High-Quality Volume Rendering on Flexible Consumer Graphics Hardware Klaus Engel, Martin Kraus, Thomas Ert Visualization and Interactive Systems Group University of Stuttgart, Germany Graphiktag 2001 - Tübingen
Dec 16, 2015
Interactive High-Quality Volume Rendering
on Flexible Consumer Graphics Hardware
Interactive High-Quality Volume Rendering
on Flexible Consumer Graphics Hardware
Klaus Engel, Martin Kraus, Thomas ErtlVisualization and Interactive Systems GroupUniversity of Stuttgart, Germany
Graphiktag 2001 - Tübingen
Visualization and Interactive Systems Group,University of Stuttgart
Volume Data Sources
Measurements (CT,MRI)
Synthetic data(radial distance volume,
+ Perlin Noise)
Simulations (convection flow)
Visualization and Interactive Systems Group,University of Stuttgart
Volume Rendering - Physical Model
• Physics of light transport• Simplified to Volume Rendering Integral
• Transfer Function:Assigns opacity and color
• Discretization
0s
s
2
10
0 )(),(')'()()( 21),'(),(
0
s
s
s
s
ssss dssssdsesqesIsI
nss 1
n
i
n
ijjiin CsI
0 1
)1()(
Visualization and Interactive Systems Group,University of Stuttgart
Volume Rendering - Methods
indirect methods
isosurface reconstruction:huge amount ofpolygons
direct methods
ray-casting:huge amount oftrilinear interpolations
Visualization and Interactive Systems Group,University of Stuttgart
Texture-based Volume Rendering
2D textures(axis-aligned
slices)
3D textures(view-aligned
Slices)
texturing(trilinear
interpolation)
texturing(trilinear
interpolation)
compositing(blending)
compositing(blending)
texturing(bilinear
interpolation)
texturing(bilinear
interpolation)compositing(blending)
compositing(blending)
Visualization and Interactive Systems Group,University of Stuttgart
Problems - Axis Aligned Slices
Missing trilinearly interpolated slices
visual artifacts due tofixed number of slices
higher numberof slices
Undersampling Artifacts
Visualization and Interactive Systems Group,University of Stuttgart
Trilinear Interpolation using 2D Multi-Textures
Idea: Compute intermediate slices
Si
Si+1 bilinear interpolation bytexture environment
Si+α
Si+α = (1-α) Si + α Si+1
blending of two textures
Real trilinear interpolation
Efficient implementation using multitextures
Visualization and Interactive Systems Group,University of Stuttgart
Flexible PC Graphics Hardware – Multi-Textures
(modulate)
=
lightmaps onlylightmaps only decal onlydecal only
combined scenecombined scene
Light maps in Quake2Light maps in Quake2
Visualization and Interactive Systems Group,University of Stuttgart
Flexible PC Graphics Hardware – Register Combiners
rasterizationprimitiveassembly
texturefetching
textureenvironmentapplication
color sum
fogcoverage
application
texture unit 0
texture unit 1
registercombiners
final cmb
general cmb1
general cmb0
Visualization and Interactive Systems Group,University of Stuttgart
Flexible PC Graphics Hardware – Result
Cryoelectron-microscopic VolumeIsosurface of Escherichia Coli Ribosome at 18 Ångström
All data slices 10 times more slices
Visualization and Interactive Systems Group,University of Stuttgart
Higher Sampling Rates – Problem
• Discrete Approximation of Volume Rendering Integral will converge to correct result for d– According to Sampling Theorem sampling rate
must be greater than the Nyquist frequency– But: High frequencies in the Transfer Function may
considerably increase the required sampling rate
• Pre-Integrated Volume Rendering– Idea: Split numerical integration into
• one pre-integration for the transfer function• one integration for the scalar field
– Pre-Integrate Ray-Segments in a pre-processing step
Visualization and Interactive Systems Group,University of Stuttgart
Volume Rendering - Classification
voxels
Post-classification
interpolation
interpolation
Pre-classification
classification
transfer functions
classification
Visualization and Interactive Systems Group,University of Stuttgart
Pre-Integrated Volume Renderingslice-by-slice slab-by-slab
sb
sfsf
sb
fetch integral fromdependent texture
sbsf
pre-integrate all possible combinations
hardware-accelerated
implementation on NVidia GeForce3
chip
project slice
sf sb
front slice
back slice
texture polygon
Visualization and Interactive Systems Group,University of Stuttgart
Flexible Rasterization Hardware - Texture Shaders
rasterizationprimitiveassembly
texturefetching
textureenvironment
color sum
fog
coverageapplication
texture unit 0
texture unit 1
registercombiners
final cmbgeneral cmb1general cmb0
textureshaders
Visualization and Interactive Systems Group,University of Stuttgart
Flexible Rasterization Hardware - Texture Shaders• Texture Shaders (when enabled) replace the
standard OpenGL texture fetch mechanism
ARB_multitexture with NV_texture_shader
ARB_multitexture only
(s,t,r,q)0
(s,t,r,q)1
(s,t,r,q)2
(s,t,r,q)0
(s,t,r,q)1
(s,t,r,q)2
stage 0math & fetch
stage 1math & fetch
stage 2math & fetch
unit 0fetch
unit 1fetch
unit 2fetch
•With texture shaders, results from previous stages can affect the lookup of a subsequent stage
Visualization and Interactive Systems Group,University of Stuttgart
Pre-Integrated Volume Rendering
RGB1
(s2,t2,r2)
(1,0,0)
stage 2DOT_PRODUCT_NV
(1,0,0) • RGB1=sb
stage 2DOT_PRODUCT_NV
(1,0,0) • RGB1=sb
RGB0
(s3,t3,r3) (1,0,0)
stage 3DOT_PRODUCT_TEXTURE2D_NV
(1,0,0) • RGB0=sf
stage 3DOT_PRODUCT_TEXTURE2D_NV
(1,0,0) • RGB0=sf
RGBA result
on to register combiners
front slice
front slice
back slice
back slice
sbsb
stage 1TEXTURE_2D
stage 1TEXTURE_2D
(s1,t1)RGBA result
sfsf
stage 0TEXTURE_2D
stage 0TEXTURE_2D
(s0,t0)RGBA result
sb
sf
Visualization and Interactive Systems Group,University of Stuttgart
Pre-Integrated Volume Rendering - Isosurfaces
Isosurfaces:particular dependent texture
32 96 sf
sb
32
96
front slice
back slice
1.
1
front slice
back slice
4.
4front slice
back slice
2.
2
front slice
back slice
3.3
3a
3a
Visualization and Interactive Systems Group,University of Stuttgart
Results – Direct Volume Rendering
128 slicespre-
classification
128 slicespre-integrated
284 slicespost-
classification
128 slicespost-
classification
Visualization and Interactive Systems Group,University of Stuttgart
Results - Direct Volume Rendering – Random TF
Visualization and Interactive Systems Group,University of Stuttgart
Results - Isosurfaces
Visualization and Interactive Systems Group,University of Stuttgart
Results - Tooth data set
Visualization and Interactive Systems Group,University of Stuttgart
Conclusions
• Interactive High-Quality Volume Rendering on Consumer Graphics Hardware– Higher Sampling Rates Trilinear Interpolation using 2D Textures But: high rasterization requirements
– Better: Pre-Integration of Ray-Segments– Pre-Integration as general as post- and pre-
classification• already applied to cell projection (Roettger et al., Vis‘00)• can be applied to ray-casting as well
Visualization and Interactive Systems Group,University of Stuttgart
Pre-Integrated Volume Rendering Demo
Demo and Data Download:http://wwwvis.informatik.uni-stuttgart.de/~engel/pre-integrated/