250 likes | 303 Views
Interactive High-Quality Volume Rendering on Flexible Consumer Graphics Hardware. Klaus Engel, Martin Kraus, Thomas Ertl Visualization and Interactive Systems Group University of Stuttgart, Germany. Graphiktag 2001 - Tübingen. Volume Data Sources. Measurements (CT,MRI).
E N D
Interactive High-Quality Volume Renderingon Flexible Consumer Graphics Hardware Klaus Engel, Martin Kraus, Thomas Ertl Visualization and Interactive Systems Group University of Stuttgart, Germany Graphiktag 2001 - Tübingen
Volume Data Sources Measurements (CT,MRI) Simulations (convection flow) Synthetic data(radial distance volume,+ Perlin Noise)
Volume Rendering - Physical Model • Physics of light transport • Simplified to Volume Rendering Integral • Transfer Function: Assigns opacity and color • Discretization
huge amount of polygons Volume Rendering - Methods direct methods indirect methods ray-casting: isosurface reconstruction: huge amount of trilinear interpolations
Texture-based Volume Rendering 2D textures (axis-aligned slices) texturing (bilinearinterpolation) compositing (blending) 3D textures (view-aligned Slices) texturing (trilinearinterpolation) compositing (blending)
visual artifacts due to fixed number of slices higher number of slices Problems - Axis Aligned Slices Undersampling Artifacts Missing trilinearly interpolated slices
Si+1 bilinear interpolation by texture environment Si+α Si blending of two textures Si+α= (1-α) Si + α Si+1 Real trilinear interpolation Trilinear Interpolation using 2D Multi-Textures Idea: Compute intermediate slices Efficient implementation using multitextures
(modulate) lightmaps only decal only = combined scene Flexible PC Graphics Hardware – Multi-Textures Light maps in Quake2
texture environment application registercombiners coverageapplication texture fetching color sum fog texture unit 0 texture unit 1 general cmb1 general cmb0 final cmb Flexible PC Graphics Hardware – Register Combiners primitive assembly rasterization
Flexible PC Graphics Hardware – Result Cryoelectron-microscopic Volume Isosurface of Escherichia Coli Ribosome at 18 Ångström All data slices 10 times more slices
Higher Sampling Rates – Problem • Discrete Approximation of Volume Rendering Integral will converge to correct result for d0 • 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
interpolation classification interpolation classification Volume Rendering - Classification transfer functions Pre- classification voxels Post- classification
project slice sf sb texture polygon front slice back slice sb pre-integrate all possible combinations fetch integral from dependent texture sb sf sf sf sb Pre-Integrated Volume Rendering slice-by-slice slab-by-slab hardware-accelerated implementation on NVidia GeForce3 chip
texture environment registercombiners coverageapplication texture fetching texture shaders color sum fog general cmb0 general cmb1 final cmb Flexible Rasterization Hardware - Texture Shaders primitive assembly rasterization texture unit 0 texture unit 1
Flexible Rasterization Hardware - Texture Shaders • Texture Shaders (when enabled) replace the standard OpenGL texture fetch mechanism ARB_multitexture only ARB_multitexture with NV_texture_shader unit 0fetch stage 0math & fetch (s,t,r,q)0 (s,t,r,q)0 unit 1fetch stage 1math & fetch (s,t,r,q)1 (s,t,r,q)1 unit 2fetch stage 2math & fetch (s,t,r,q)2 (s,t,r,q)2 • With texture shaders, results from previous stages can affect the lookup of a subsequent stage
stage 0 TEXTURE_2D (s0,t0) RGBA result sf sb RGB0 stage 1 TEXTURE_2D (s1,t1) RGBA result sb RGB1 stage 2 DOT_PRODUCT_NV (1,0,0)• RGB1=sb (s2,t2,r2) (1,0,0) stage 3 DOT_PRODUCT_TEXTURE2D_NV (1,0,0) • RGB0=sf sf RGBA result (s3,t3,r3) (1,0,0) on to register combiners Pre-Integrated Volume Rendering front slice back slice
1. 2. 1 front slice back slice front slice back slice 4 3. 4. 3a 2 3 3a front slice back slice front slice back slice Pre-Integrated Volume Rendering - Isosurfaces Isosurfaces:particular dependent texture sb 96 32 sf 32 96
128 slices pre-classification 128 slices post-classification 284 slices post-classification 128 slices pre-integrated Results – Direct Volume Rendering
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
Pre-Integrated Volume Rendering Demo Demo and Data Download:http://wwwvis.informatik.uni-stuttgart.de/~engel/pre-integrated/