230 likes | 375 Views
Interactive Volume Visualization of General Polyhedral Grids. Philipp Muigg 1,3 , Markus Hadwiger 2 , Helmut Doleisch 3 , M. Eduard Gröller 1 1, Vienna University of Technology, Austria 2, King Abdullah University of Science and Technology, Saudi Arabia 3, SimVis GmbH, Vienna, Austria.
E N D
Interactive Volume Visualization of General Polyhedral Grids Philipp Muigg1,3, Markus Hadwiger2, Helmut Doleisch3, M. Eduard Gröller1 1, Vienna University of Technology, Austria 2, King Abdullah University of Science and Technology, Saudi Arabia 3, SimVis GmbH, Vienna, Austria
Motivation • Computational Fluid Dynamics (CFD) simulations • Increase in size • Meshes become more complex
Motivation • Many unstructured grid volume visualization techniques limited to tetrahedral grids • Tetrahedralization required 82K poly cells (~4M tets) 1.4M poly cells (~89M tets)
Motivation • Direct volume rendering for grids composed of general polyhedral cells • Data structure to represent polyhedral grids • Low memory footprint • Support traversal operations required by ray casting
Data Structure • Requirements for ray casting • Query all faces of a cell • Query neighouring cell across a face • Query vertices of a face
Data Structure • 2D illustration • 3D Faces 2D Edges • 3D Cells 2D Faces • Example contains • 6 „faces“ • 3 „cells“
Data Structure • Common grid representations cell centered 6links
Data Structure • Common grid representations cell centered • Cell to cell traversal for ray casting requires (redundant) face connectivity
Data Structure • Redundancy • Cell to face data derivable from face to cell data • Face to cell data derivable from cell to face data 21 links
Data Structure: TSFL • Two sided face lists (TSFL) • Face based (comparable to winged/half edge) • Cells represented via linked lists • Two links per face (front and back link)
Data Structure: TSFL • Additional bit flag per link (front and back flag) • Blue facing towards cell • Green facing away from cell
Data Structure: TSFL • Visit all faces of a cell via links • Select link at face based on previous flag • Step from one cell to neighbour by selecting other link 12 links
Data Structure: TSFSL • Two sided face sequence lists (TSFSL) • Group faces facing towards same cell • Discard front links (retain last in sequence)
Data Structure: TSFSL • Two sided face sequence lists (TSFSL) • Group faces facing towards same cell • Discard front links (retain last in sequence) 9 links
Data Structure: TSFSL • Requirements for ray casting • Query all faces of a cell • Query neighouring cell across a face • Query vertices of a face
Data Structure: TSFSL • TSFSL storage • Interleave mesh connectivity and face geometry • Back links stored in front of face geometry • Terminating front link stored at end of sequence (sequence terminator) • Entire mesh stored in single 1D array Sequence [cde] Sequence [af] Sequence [b]
Data Structure: TSFSL • Requirements for ray casting • Query all faces of a cell • Query neighouring cell across a face • Query vertices of a face
GPU based Ray Casting • TSFSL traversal for ray casting Sequence [cde] Sequence [af] Sequence [b]
GPU based Ray Casting • TSFSL traversal for ray casting Sequence [cde] Sequence [af] Sequence [b]
GPU based Ray Casting • Spatial subdivision based on kD-tree • Bricks rasterized independently • Depth peeling for non-convex meshes • Mean-value interpolation within cells • Ray casting performed in view space • See paper for additional details
Application Examples HAVS [Callahan 2005]: ~7-9 byte/tet GPU and 118-149 byte/tet CPU Tet Strips [Weiler 2004]: ~15 byte/tet Hardware: Core 2 Quad @ 2.8GHz Geforce GTX480 1GB RAM
Summary/Future Work • TSFSL data structure • Face based • Low memory footprint • GPU-based ray-casting on polyhedral meshes • Works directly on TSFSL • Domain decomposition for culling/depth peeling • Future Work • Utilize CUDA/OpenCL shared memory during ray-casting • Parallelize across multiple GPUs
Questions? Acknowledgements: Polyhedral datasets courtesy of CD-Adapco Cooling jacket and Diesel Particulate Filter datasets courtesy of AVL List GmbH, Graz, Austria Parts of this project have been funded by the Austrian Research Funding Agency (FFG) in the scope of the project AutARG (No. 819352) and the ScaleVS (WWTF) project Thank you for your attention!