Download presentation
Presentation is loading. Please wait.
Published byRalf Snow Modified over 9 years ago
1
WSCG 2007 Memory Efficient and Robust Software Implementation of the Raycast Algorithm Aline Pina COPPE/UFRJ Rio de Janeiro - Brazil aline@lcg.ufrj.br Cristiana Bentes DESC/UERJ Rio de Janeiro - Brazil cristianabentes@gmail.com Ricardo Farias COPPE/UFRJ Rio de Janeiro - Brazil rfarias@cos.ufrj.br
2
Outline Volume Visualization Ray-casting Proposed Ray-casting Algorithms Experimental Results Conclusions
3
Volume Visualization Volumetric data images 3D data 2D plane Gains: –Understanding –Visual analysis and interpretation
4
Volumetric Data Generated: –Simulation (Fluid Dynamic) –Sensors (CT scanner) –Measured Data (Ocean Buoys) Represented: –3D grid of voxels (Regular or Irregular)
5
Volume Visualization Methods Surface Rendering x Volume Rendering More information Shows internal structures Computational intensive Loses information Hides internal structures Faster to compute Object is semi-transparent Discard data between surfaces
6
Volume Rendering Algorithms Cell projection: cells are projected on the screen Ray-casting: rays are casted through every pixel
7
Ray-casting
8
Ray-casting - History First software implementation: –Garrity(1990) - cell connectivity Improvement: –Bunyk(1998) - entry points + new auxiliary structures
9
Ray-casting - History Problems: Auxiliary data structures - high memory consumption Degenerate cases
10
Our Goal Improvements in Bunyk approach: –Completely handle degenerate cases –Smaller data structures –Deal with tetrahedral and/or hexahedral grids
11
Ray-casting Algorithms ME-Raycast Memory Efficient Ray-casting EME-Raycast Enhanced Memory Efficient Ray-casting
12
ME-Raycast
13
Data Structures –Points array –Cells array –Use_set for each vertex –Neighbor_set for each cell –Faces array – on-the-fly
14
ME-Raycast Use_set(v) –List of all cells incident on v v A B C D E Use_set(v) = {A, B, C, D, E} 2D example
15
ME-Raycast Neighbor_set(c) –List of all cells that share a face with c A 2D example
16
ME-Raycast Neighbor_set(c) –List of all cells that share a face with c A B C D Neighbor_set(A) = {B, C, D} 2D example
17
ME-Raycast Faces array –List of all faces intersected by the rays 3D example
18
ME-Raycast Faces array –List of all faces intersected by the rays 3D example A
19
ME-Raycast Faces array –List of all faces intersected by the rays 3D example Faces array A A
20
ME-Raycast Faces array –List of all faces intersected by the rays 3D example Faces array A A B B
21
ME-Raycast Faces array –List of all faces intersected by the rays 3D example Faces array A A B B
22
ME-Raycast Algorithm –Preprocessing: Read data – create arrays Points and Cells Create Use_set Create Neighbor_set
23
ME-Raycast Algorithm –Raycasting: Project visible faces – entry point For each pixel: –Find next intersection – check other cell's faces –If (no intersection) – check degenerate cases –Accumulate color and opacity
24
EME-Raycast
25
Data Structures –Points array –Cells array –Use_set for each vertice –Neighbor_set for each cell –Faces array
26
EME-Raycast Algorithm –Verification of intersection: Checking the face - recalculate parameters
27
Handling Degeneracies
28
Ray hits a vertex a 2D example
29
Handling Degeneracies Ray hits a vertex a b A E Bunyk check 2D example
30
Handling Degeneracies Ray hits a vertex a b A E B C D Our check 2D example
31
Handling Degeneracies Ray hits a vertex a b A E B C D c 2D example
32
Handling Degeneracies Ray hits an edge 3D example
33
Handling Degeneracies Ray hits an edge a 3D example
34
Handling Degeneracies Ray hits an edge a b 3D example
35
Handling Degeneracies Ray hits an edge a 3D example b
36
Handling Degeneracies Ray hits an edge a b Bunyk check 3D example
37
Handling Degeneracies Ray hits an edge a b c Our check 3D example
38
Experimental Results
39
Datasets# Cells Blunt Fin187 395 Combustion Chamber215 040 Oxygen Post513 375 SPX827 904 Delta Wing1 005 675 Hexa1 920 Workload
40
Experimental Results Baselines: –Bunyk (ray-casting) –ZSweep (cell projection)
41
Viewing Direction Screen Step 1 Bunyk Algorithm
42
Viewing Direction Screen Step 2 Bunyk Algorithm
43
Target Z Sweep Direction Z X P v t Pixel List P ZSweep Algorithm
44
Target Z Z X P v t Pixel List P ZSweep Algorithm
45
Experimental Results Degenerate cases: 512 2 1024 2 Blunt1031 Comb-2 Oxygen1138 Delta717 SPX518 Pixels not rendered
46
Experimental Results Memory Consumption ME-Raycast – 1024 x 1024 image BunykZSweep Blunt75%40% Combustion76% Oxygen66%70% Delta61%152% SPX74%222%
47
Experimental Results Memory Consumption EME-Raycast – 1024 x 1024 image BunykZSweep Blunt39%20% Combustion37% Oxygen30% Delta27%68% SPX27%83%
48
Experimental Results Execution Time ME-Raycast – 1024 x 1024 image BunykZSweep Blunt126%29% Combustion106%38% Oxygen136%38% Delta148%33% SPX116%41%
49
Experimental Results Execution Time EME-Raycast – 1024 x 1024 image BunykZSweep Blunt304%70% Combustion224%80% Oxygen289%82% Delta271%61% SPX222%79%
50
Conclusions Two memory-aware ray-casting algorithms Improved Bunyk work: memory, degenerate cases, handling hexahedral Significant gains in memory usage Correct images
51
Future Work Software out-of-core version GPU implementation Parallelization
52
Thank you! cristianabentes@gmail.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.