irun interactive rendering of large unstructured grids
play

iRun: Interactive Rendering of Large Unstructured Grids Huy T. Vo - PowerPoint PPT Presentation

iRun: Interactive Rendering of Large Unstructured Grids Huy T. Vo , Steven P. Callahan , Nathan Smith , Cludio T. Silva , William Martin , David Owen , and David Weinstein Scientific Computing and Imaging


  1. iRun: Interactive Rendering of Large Unstructured Grids Huy T. Vo † , Steven P. Callahan † , Nathan Smith † , Cláudio T. Silva † , William Martin ‡ , David Owen ‡ , and David Weinstein ‡ † Scientific Computing and Imaging Institute, University of Utah ‡ Visual Influence

  2. Motivation  Large-scale simulations produce a lot of data  Interactive visualization techniques not keeping up  Walkthrough systems exist for polygonal data, why not volumes? HAVS [Callahan et al. ‘05] iWalk [Correa et al. ‘02] 2

  3. iRun  Interactive Rendering of Large Unstructured Grids • Out-of-core volume traversal • Active set management with speculative prefetching • Level-of-detail interaction • Distributed rendering 3

  4. Objective  Interactive Walkthrough • Maintain responsiveness • Memory Insensitive • Low vs. High quality • Only render pertinent data  Distributed Rendering • Use multiple machines/cores • Improve image quality • Increase display size 4

  5. Issues  Retrieval from storage • Out-of-core data structures • [Samet ‘90] • Out-of-core algorithms • [Chiang et al. ‘98, Farias and Silva ‘01] • [El-Sana and Chiang ‘00, Cignoni et al. ‘04]  Processing in main memory • Walk-through systems • [Clark ‘76, Funkhouser et al. ‘92, Aliaga et al. ‘99] • [Varadhan and Manocha ‘92, Correa et al ‘02] • Visibility • [El-Sana et al. ‘01, Correa et al. ‘03, Cohen-Or et al. ‘03] 5

  6. Issues  Hardware-Assisted Rendering • Projected Tetrahedra • [Shirley and Tuchman ‘90] • Ray Casting • [Weiler et al. ‘03, Bernardon et al. ‘05] • Hardware Assisted Visibility Sorting • [Callahan et al. ‘05, Callahan et al. ‘05, Callahan et al. ‘06]  Display • Parallel GPU rendering • [Humphreys et al. ‘02] • Display wall rendering • [Moreland and Thompson ‘03] 6

  7. Background  Hardware Assisted Visibility Sorting (HAVS) • Sort in object space and image space CPU GPU [Callahan et al. 2005] http://havs.sourceforge.net and vtk/ParaView 7

  8. Background  Dynamic Level-of-Detail 2.0 fps 5.3 fps 10.0 fps 16.1 fps [Callahan et al. ‘05] http://havs.sourceforge.net and vtk/ParaView 8

  9. Background  Progressive Volume Rendering 3% 33% 66% 100% 0.01 sec 7 sec 18 sec 34 sec [Callahan et al. ‘06] 9

  10. ������� ��������� ���������฀������ ��� ����� ��� ����� ������฀����� ����� ������ ����฀����� �������� ������฀�������� ������ ����� ����� ��� ������ �������� ��� ���� �� ���� ����฀����� ������� ������� ��� ������ ������ �������� ����� �������� ������ �������� ����� �������� ��� Overview User Octree Geometry Cache Renderer Interface Traversal 10

  11. Preprocessing  Memory-insensitive unique triangle extraction • Write triangle indices to file • Perform external sort • Extract unique entries 0 1 2 0 1 2 0 1 2 0 2 3 0 1 2 0 1 2 0 1 2 0 2 3 0 2 3 0 2 3 0 2 3 0 2 3 1 2 3 1 2 3 1 2 3 ... ... ... 11

  12. Preprocessing  Out-of-core octree • The octree is stored on disk as a directory structure • Each node contains vertices and triangle indices • Vertices are accessed globally during insertion 0/ 1_0/ 1_1/ 1_2/ 1_3/ 1_4/ 1_5/ 1_6/ 1_7/ 1_0/ 1_0_0/ 1_0_1/ 1_0_2/ ... 1_0_0/ data.vtk ... 12

  13. Preprocessing  Out-of-core octree • Add triangles one by one into octree • Use triangle-box intersections • Replicate triangles that span nodes • When node reaches capacity, split and redistribute triangles 13

  14. Preprocessing  Out-of-core octree • Populate parent nodes with internal geometry • Use area-based level-of-detail • Replicate triangles as they are added 14

  15. Preprocessing  Out-of-core octree • Populate parent nodes with boundary geometry • Simplify boundaries (eg., 5%) • Insert into every node that is not a leaf node • Cleanup octree • Insert referenced vertices into each octree node • Clip triangles to node boundary 15

  16. Preprocessing  Why clip? • Avoid compositing issues on node boundaries 16

  17. Geometry Cache  For each new camera position • Frustum culling for visible nodes • Level-of-detail culling for interaction • Geometry fetching 17

  18. Geometry Cache  Level-of-detail culling using priority functions, P(Camera,Node) • Breadth-first search • P BFS (C,N) = <l,d> – l = depth of N – d = distance of bounding box of N to camera • Area • P area (C,N) = A – A = projected area of bounding box of N on screen 18

  19. Geometry Cache  Geometry Fetching • Uses a separate thread from rendering • Moves geometry from disk to geometry cache • If cache is full, replaces least recently used • Performs speculative prefetching Least Recent Current Prefetched Unused 19

  20. Rendering  Each node rendered separately in front to back order • Largest common parent 5 3 4 1 2 20

  21. ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������� �������� ������฀���� ���������� Distributed Rendering 21

  22. Results 22

  23. Results  Preprocessing • SF1 dataset • Input: 14 M tetrahedra, 28 M triangles (515 MB) • Output: 63 M triangles (1425 MB) • ~2.8X • 37 min • Bullet dataset • Input: 36 M tetrahedra, 62 M triangles (1303 MB) • Output: 118 M triangles (2804 MB) • ~2.1X • 1 hour 10 min 23

  24. Results  Geometry cache Displayed Nodes Prefetching Nodes 80 70 60 Number of Nodes 50 40 30 20 10 0 1 12 23 34 45 56 67 78 89 100 111 122 133 144 155 166 177 188 199 210 221 232 243 254 265 276 287 298 Frame 24

  25. Discussion  Limitations • Vertices are in-core during preprocessing • Preprocessing output size • Transfer function design  VTK • VTK is not thread safe! • Data structures not optimized for rendering  iRun vs. iWalk • Level-of-detail instead of occlusion culling • Visibility sorting • Compositing 25

  26. Conclusion  Handles very large data sets  Renders with a budget  Scalable to multiple machines/displays  Future Work: • Render other data types ( ie. , hexahedra, mixed) • Automatic level-of-detail technique selection • Transfer function design for large data • Extend for isosurfacing 26

  27. Acknowledgments  Datasets • Shepherd (SNL) • MacLeod (Utah) • Neely and Batina (NASA) • O’Hallaran and Shewchuck (CMU) • Ma (UC Davis)  Funding • Army Research Office • Department of Energy • IBM • Sandia National Laboratories • Lawrence Livermore National Laboratory • University of Utah 27

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend