Presentation is loading. Please wait.

Presentation is loading. Please wait.

WSCG 2007 Memory Efficient and Robust Software Implementation of the Raycast Algorithm Aline Pina COPPE/UFRJ Rio de Janeiro - Brazil

Similar presentations


Presentation on theme: "WSCG 2007 Memory Efficient and Robust Software Implementation of the Raycast Algorithm Aline Pina COPPE/UFRJ Rio de Janeiro - Brazil"— Presentation transcript:

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


Download ppt "WSCG 2007 Memory Efficient and Robust Software Implementation of the Raycast Algorithm Aline Pina COPPE/UFRJ Rio de Janeiro - Brazil"

Similar presentations


Ads by Google