310 likes | 707 Views
Hardware-Accelerated Adaptive EWA Volume Splatting. Wei Chen ZJU Liu Ren CMU Matthias Zwicker MIT Hanspeter Pfister MERL. Volume Splatting. Object-order method 3D reconstruction kernel centered at each voxel (elliptical Gaussian)
E N D
Hardware-Accelerated Adaptive EWA Volume Splatting Wei Chen ZJU Liu Ren CMU Matthias Zwicker MIT Hanspeter Pfister MERL
Volume Splatting • Object-order method • 3D reconstruction kernel centered at each voxel (elliptical Gaussian) • Voxel contribution = 2D footprint (color, opacity) • Weighted footprints accumulated into image 2D footprints = splats Screen Voxel kernels
Related Work Quality Westover1989 Crawfis 1993 EWA Swan 1997 Mueller 1999 Image- aligned Huang 2000 Zwicker 2001 Our work Swan Xue 2003 Axis- aligned Speed Fast splats Texture splats OpenGL ex Software
Outline • EWA volume splatting • Adaptive EWA splatting • GPU implementation • Results and conclusions
EWA Volume Splatting Low-Pass Filter Projection W Convolution EWA volume resampling filter • Compensate aliasing artifacts due to perspective projection • EWA Filter = low-pass filter warped reconstruction filter Volume
EWA Volume Splatting (512x512x3) Reconstruction filter only: 6.25 fps EWA filter: 4.97 fps Low-pass filter only: 6.14 fps EWA filter: 3.79 fps
Analysis of EWA Filter Minification Warped recon- struction kernel Low-pass filter Resampling filter Magnification
Analysis of EWA Filter • Shape of EWA Splat is dependent on distance from the view plane rh Low-pass filter radius rk Reconstruction filter radius EWA splat u2 Distance to the view plane Note that
Adaptive EWA Filtering Warped recon- struction kernel Low-pass filter Resampling filter if u2 > A use low-pass filter if A<u2< B use EWA filter if u2< Buse reconstruction filter
Patch Processing • Process a 8 x 8 patch of voxels at a time • Filter selection based on four corners of each patch (choose smallest) Traversal order Patch Distance
Adaptive EWA Volume Splatting (512x512x3) Adaptive EWA filter: 6.88 fps EWA filter: 4.83 fps Adaptive EWA filter: 1.84 fps EWA filter: 1.75 fps
Outline • EWA volume splatting • Adaptive EWA splatting • GPU implementation • Results and conclusions
Object-Space EWA Splatting Projection Vertex shader computation Texturemapping Textured quad • Object-space EWA splatting with texture mapping [Ren et al. Eurographics 2002] EWA Splat (elliptical Gaussian) Texture (unit Gaussian) (1,1) (0,1) (0,0) (1,0) Unit quad
Proxy Geometry Template . . . • Rectilinear volumes: use one proxy geometry template for all slices in each direction • Store vertex indices in AGP memory Regularity Voxel geometry Quad geometry Proxy geometry template
Vertex Compression • Compress each vertex to 32 bits • Decompression on-the-fly in programmable hardware • To store vertex information of 256x256x256 volume in video memory • Without compression 2,048 MBytes • With compression 12 MBytes • Retained-mode hardware acceleration feasible
Retained vs. Immediate Mode Factor of ~10 improvement
Interactive Classification: Opacity Culling • Hardware-accelerated list-based traversal • For each slice • For each 32 x 32 patch of voxels (smaller indices) • Indices of proxy geometry organized into iso-value lists using bucket sort; CPU merges lists on-line • Render only iso-value lists with visible voxels 0 128 Patch 256
Interactive Classification: Opacity Culling Includes changes to TF every frame Factor of ~10 improvement
Deferred Shading • Volume texture access is only possible in fragment programs* • However, per fragment shading is expensive • Solution: deferred shading in two passes * Newer GPUs allow texture access in vertex programs
Deferred Shading • Pass one: 3D texture access, classification and illumination in vertex shader, render one pixel per voxel • Pass two: reuse the pixel data from the first pass to shade the 2D footprint • Performance gain: 5%-10% speedup Pass one Pass two Final result
Experiments • P4 2.4 GHz • ATI 9800 Pro with 256 MB RAM • Direct3D 9.0b with VS 2.0 and PS 2.0 Vertex shader instructions
Sheet-buffer Composition 0.80 fps 3.00 fps 3.45 fps Axis-aligned traversal, addition in sheet buffers, then blending front-to-back
UNC Head: 208x256x225 #Rendered splats: 2,955,242 2.86 fps 8.5M splats / sec
Bonsai: 256x256x128 #Rendered splats: 274,866 7.53 fps 2M splats / sec
Engine: 256x256x110 #Rendered splats: 247,577 10.28 fps 2.5M splats / sec
Lobster: 301x324x56 #Rendered splats: 555,976 10.60 fps 5.9M splats / sec
Our Contributions • Adaptive EWA computation • Volume data compression • Retained-mode hardware acceleration • Interactive opacity culling • Deferred two-pass shading
Future Work • Image-aligned EWA volume splatting • Irregular volume splatting • Pointsprites in OpenGL • Floating point textures • Vertex texture for classification
Acknowledgements • Jessica Hodgins (CMU) • Markus Gross (ETH) http://graphics.cs.cmu.edu/projects/adpewa/index.html