230 likes | 452 Views
Smart Hardware-Accelerated Volume Rendering. Stefan Roettger Stefan Guthe Daniel Weiskopf Wolfgang Strasser Thomas Ertl. Overview. Current state of the art in direct volume rendering What can be improved? Rendering of segmented data Hardware-accelerated raycasting.
E N D
Smart Hardware-Accelerated Volume Rendering • Stefan Roettger • Stefan Guthe • Daniel Weiskopf • Wolfgang Strasser • Thomas Ertl
Overview • Current state of the art in direct volume rendering • What can be improved? • Rendering of segmented data • Hardware-accelerated raycasting
Direct Volume Rendering • 3D slicing approach (Akeley ‘87) • Pre-integration (Max VolVis ‘90, Roettger VIS ‘00, Engel HWW ‘01) • Pre-integrated material properties (Meissner GI ‘02) • Hardware-accelerated pre-integration (Roettger VolVis ‘02, Guthe HWW ‘02) • Multi-Dimensional TF (Kniss VIS ‘01) • Volume clipping (Weiskopf VIS ‘02)
What is missing? • From a medical point of view: • Pre-integration is difficult to apply to segmented medical data • Pre-integration quality is still not good enough • 8 bit frame buffer produces artifacts on consumer graphics hardware
Pre-Integration • Ray integral depends on three variables: Sf, Sb, and l, where l is assumed to be constant • Pre-compute a table for all combinations of Sf and Sb and store it in a 2D dependent texture
Volume Clipping • Use additional scalar clip volume C(x,y,z) • Iso surface for C=0.5 defines clip geometry • Adjust Sf, Sb, and l according to clip volume (naive approach: set l=0) • for the case Cf<0.5<Cb • w = |Cb-0.5|/|Cb-Cf| • S’f = (1-w)*Sb+w*Sf • l’= l*w ’ ≈ *w C=0.5
Pre-Integration & Segmentation • Segmentation with two materials is easy: • Define second transfer function TF2 • In the pixel shader: • Make a lookup in TF1 for the blue area • Blend with the lookup in TF2 for the grey area C=0.5
Quality Comparison naive clipping clipped Bonsai correct adjust- ment
Undersampling Quality Slicing artifacts
Undersampling Quality Slicing artifacts
Sampling Quality Slicing artifacts
Sampling Quality Interpolation artifacts
Supersampling Quality Still minor interpolation artifacts
Supersampling Quality Almost correct
Drawback of Pre-Integration • Linear interpolation assumed in slab • But in fact the interpolation is trilinear • Inside the slab one may cross a voxel boundary • Lighting is also a non-linear operation • Conclusion: For superior quality we need at least 2-times, better 4-times oversampling!
Ray Casting • Supersampling is slow, but fortunately we do not need to supersample everywhere • Define importance volume which tells where to sample more precisely • Depends on 2nd deriv. of scalar volume and 1st deriv. of TF • Perform adaptive ray casting on the graphics hardware
Hardware-Accelerated Ray Casting • Implemented on the ATI Radeon 9700 with multiple floating point render targets: • Need to process all pixels at once • Cannot exploit ray coherence • Early ray termination by early Z-test • Exploit hierarchical Z-buffer compression • Adaptive sampling includes space leaping • Stop if all pixels are terminated (asynchronous occlusion query)
Hardware-Accelerated Ray Casting • Store ray parameter to determine actual position • Complete PS 2.0 code given in the paper
Quality Comparison 4-times oversampling 8 bit frame buffer HW ray casting full floating point
Performance • Same performance as 4 times over-sampling with alpha Direct 9 drivers (about 2 seconds per frame) • But already much better quality • With latest drivers we achieve 2-5 frames per second due to greatly improved performance of occlusion query (12 ms vs. 100 ms)
ANFSCD: The Bonsai Note: Raw data of all three Bonsai’ is available on my homepage
Conclusions • We have shown how to combine volume clipping/segmentation with pre-integrated volume rendering • With respect to quality HW ray casting is superior to the traditional slicing approach and with latest drivers is also faster • By reducing the number of adaptive samples frame rates can be pushed even higher while maintaining good quality • Now switching to the Live Demo
Fin • Thanks for your attention!