New techniques for out-of-core visualization of large datasets

We present a practical system to visualize large datasets interactively on commodity PCs. Interactive visualization has applications in many areas, including computer-aided design, engineering, entertainment, and training. Traditionally, visualization of large datasets has required expensive high-end graphics workstations. Recently, with the exponential trend of higher performance and lower cost of PC graphics cards, inexpensive PCs are becoming an attractive alternative to high-end machines. But a barrier in exploiting this potential is the small memory size of typical PCs. Our system uses new out-of-core techniques to visualize datasets much larger than main memory. In a preprocessing phase, we build a hierarchical decomposition of the dataset using an octree, precompute coefficients used for visibility determination, and create levels of detail. At runtime, we use multiple threads to overlap visibility computation, cache management, and rasterization. The structure of the octree and the visibility coefficients are kept in main memory. The contents of the octree nodes are loaded on demand from disk into a cache. To find the visible set, we use a fast approximate algorithm followed by a hardware-assisted conservative algorithm. To hide I/O latency, a separate thread prefetches nodes that are likely to become visible. We also describe a sort-first parallel extension of the system that uses a cluster of PCs to drive a high-resolution, multi-tile screen. A client process interacts with the user, and a set of server processes render the screen tiles. To avoid sending the entire dataset from the client to the severs every frame, the servers access the dataset from a shared file system or from a local copy on disk. Putting the 1/O load on the server side makes the network bandwidth requirements low and the architecture scalable. Using a cluster of 16 PCs, the system can generate high resolution images (12 megapixels) of large datasets (4 gigabytes) at interactive frame rates (10 frames per second). Thus, our system is a cost-effective alternative to high-end machines, and can help bring visualization of large datasets to a broader audience.

[1]  Dinesh Manocha,et al.  Out-of-core rendering of massive geometric environments , 2002, IEEE Visualization, 2002. VIS 2002..

[2]  Thomas A. Funkhouser,et al.  Parallel rendering with K-way replication , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[3]  Thomas A. Funkhouser,et al.  Hybrid sort-first and sort-last parallel rendering with a cluster of PCs , 2000, Workshop on Graphics Hardware.

[4]  Dieter Baum,et al.  Interactive viewing of large geometric databases using multiprocessor graphics workstations , 1990 .

[5]  François X. Sillion,et al.  Multi‐layered impostors for accelerated rendering , 1999, Comput. Graph. Forum.

[6]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[7]  Carl Mueller Hierarchical graphics databases in sort-first , 1997, PRS '97.

[8]  Jeffrey Scott Vitter,et al.  A Framework for Index Bulk Loading and Dynamization , 2001, ICALP.

[9]  Steven A. Przybylski,et al.  Cache and memory hierarchy design: a performance-directed approach , 1990 .

[10]  Henry Fuchs,et al.  Pixel-planes 5: a heterogeneous multiprocessor graphics system using processor-enhanced memories , 1989, SIGGRAPH.

[11]  William V. Baxter,et al.  GigaWalk: Interactive Walkthrough of Complex Environments , 2002, Rendering Techniques.

[12]  James F. Blinn,et al.  Light reflection functions for simulation of clouds and dusty surfaces , 1982, SIGGRAPH.

[13]  Pat Hanrahan,et al.  Tracking graphics state for networked rendering , 2000, Workshop on Graphics Hardware.

[14]  Tom Davis,et al.  Opengl programming guide: the official guide to learning opengl , 1993 .

[15]  Joëlle Thollot,et al.  Conservative visibility preprocessing using extended projections , 2000, SIGGRAPH.

[16]  Cláudio T. Silva,et al.  Out-of-core sort-first parallel rendering for cluster-based tiled displays , 2002, Parallel Comput..

[17]  Peter Lindstrom,et al.  Out-of-core construction and visualization of multiresolution surfaces , 2003, I3D '03.

[18]  Christopher DeCoro,et al.  XFastMesh: fast view-dependent meshing from external memory , 2002, IEEE Visualization, 2002. VIS 2002..

[19]  David Ellsworth,et al.  Application-controlled demand paging for out-of-core visualization , 1997, Proceedings. Visualization '97 (Cat. No. 97CB36155).

[20]  Michael Karl Ullner Parallel machines for computer graphics , 1983 .

[21]  Cláudio T. Silva,et al.  Towards point-based acquisition and rendering of large real-world environments , 2002, Proceedings. XV Brazilian Symposium on Computer Graphics and Image Processing.

[22]  Amitabh Varshney,et al.  Navigating static environments using image-space simplification and morphing , 1997, SI3D.

[23]  Carlo H. Séquin,et al.  Adaptive display algorithm for interactive frame rates during visualization of complex virtual environments , 1993, SIGGRAPH.

[24]  David J. Kriegman,et al.  Compressing large polygonal models , 2001, Proceedings Visualization, 2001. VIS '01..

[25]  Thomas A. Funkhouser,et al.  Database Management for Interactive Display of Large Architectural Models , 1996, Graphics Interface.

[26]  Cláudio T. Silva,et al.  A memory insensitive technique for large model simplification , 2001, Proceedings Visualization, 2001. VIS '01..

[27]  William Ribarsky,et al.  Real-time, continuous level of detail rendering of height fields , 1996, SIGGRAPH.

[28]  Kai Li,et al.  Performance issues of a distributed frame buffer on a multicomputer , 1998, Workshop on Graphics Hardware.

[29]  Adam Finkelstein,et al.  Building and Using A Scalable Display Wall System , 2000, IEEE Computer Graphics and Applications.

[30]  Gordon Stoll,et al.  Lightning-2: a high-performance display subsystem for PC clusters , 2001, SIGGRAPH.

[31]  Xiaoyu Zhang,et al.  Scalable isosurface visualization of massive datasets on COTS clusters , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[32]  Gordon Stoll,et al.  WireGL: a scalable graphics system for clusters , 2001, SIGGRAPH.

[33]  Marc Levoy,et al.  The digital Michelangelo project: 3D scanning of large statues , 2000, SIGGRAPH.

[34]  Joel H. Saltz,et al.  Exploration and Visualization of Very Large Datasets with the Active Data Repository , 2001 .

[35]  Jarek Rossignac,et al.  BRUSH as a Walkthrough System for Architectural Models , 1995 .

[36]  Carl Mueller,et al.  The sort-first rendering architecture for high-performance graphics , 1995, I3D '95.

[37]  Marc Levoy,et al.  Light field rendering , 1996, SIGGRAPH.

[38]  Philipp Slusallek,et al.  Distributed interactive ray tracing of dynamic scenes , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[39]  Peter L. Williams Visibility-ordering meshed polyhedra , 1992, TOGS.

[40]  James Noble,et al.  Small memory software - patterns for systems with limited memory , 2000 .

[41]  Yannis Smaragdakis,et al.  The Case for Compressed Caching in Virtual Memory Systems , 1999, USENIX Annual Technical Conference, General Track.

[42]  William J. Schroeder,et al.  Interactive visualization of aircraft and power generation engines , 1997, Proceedings. Visualization '97 (Cat. No. 97CB36155).

[43]  David R. Butenhof Programming with POSIX threads , 1993 .

[44]  Frederick P. Brooks,et al.  Towards image realism with interactive update rates in complex virtual building environments , 1990, I3D '90.

[45]  David P. Luebke,et al.  View-dependent simplification of arbitrary polygonal environments , 1997, SIGGRAPH.

[46]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[47]  Kwan-Liu Ma,et al.  Out-of-Core Streamline Visualization on Large Unstructured Meshes , 1997, IEEE Trans. Vis. Comput. Graph..

[48]  Martin Isenburg,et al.  Out-of-core compression for gigantic polygon meshes , 2003, ACM Trans. Graph..

[49]  Anselmo Lastra,et al.  Automatic image placement to provide a guaranteed frame rate , 1999, SIGGRAPH.

[50]  Cláudio T. Silva,et al.  Fast and Simple Occlusion Culling , 2002 .

[51]  Leonard McMillan,et al.  Plenoptic Modeling: An Image-Based Rendering System , 2023 .

[52]  Hugues Hoppe Smooth view-dependent level-of-detail control and its application to terrain rendering , 1998, Proceedings Visualization '98 (Cat. No.98CB36276).

[53]  Dinesh Manocha,et al.  Interactive view-dependent rendering with conservative occlusion culling in complex environments , 2003, IEEE Visualization, 2003. VIS 2003..

[54]  Harry Shum,et al.  Rendering with concentric mosaics , 1999, SIGGRAPH.

[55]  Hanan Samet,et al.  The Design and Analysis of Spatial Data Structures , 1989 .

[56]  Peter Shirley,et al.  Visual navigation of large environments using textured clusters , 1995, I3D '95.

[57]  Gabriel Taubin,et al.  Building a Digital Model of Michelangelo's Florentine Pietà , 2002, IEEE Computer Graphics and Applications.

[58]  Hugues Hoppe,et al.  Progressive meshes , 1996, SIGGRAPH.

[59]  Sara McMains,et al.  Out-of-core build of a topological data structure from polygon soup , 2001, SMA '01.

[60]  Kurt Akeley,et al.  RealityEngine graphics , 2000 .

[61]  Cláudio T. Silva,et al.  Efficient Conservative Visibility Culling Using the Prioritized-Layered Projection Algorithm , 2001, IEEE Trans. Vis. Comput. Graph..

[62]  Thomas A. Funkhouser,et al.  Load balancing for multi-projector rendering systems , 1999, Workshop on Graphics Hardware.

[63]  Markus Wagner,et al.  Interactive Distributed Ray Tracing of Highly Complex Models , 2001, Rendering Techniques.

[64]  Frédo Durand,et al.  A Survey of Visibility for Walkthrough Applications , 2003, IEEE Trans. Vis. Comput. Graph..

[65]  Pat Hanrahan,et al.  A distributed graphics system for large tiled displays , 1999, Proceedings Visualization '99 (Cat. No.99CB37067).

[66]  Pat Hanrahan,et al.  Rendering complex scenes with memory-coherent ray tracing , 1997, SIGGRAPH.

[67]  James T. Klosowski,et al.  iWalk: Interactive Out-Of-Core Rendering of Large Models , 2002 .

[68]  Szymon Rusinkiewicz,et al.  Visible Zone Maintenance for Real-Time Occlusion Culling , .

[69]  John S. Montrym,et al.  InfiniteReality: a real-time graphics system , 1997, SIGGRAPH.

[70]  E. Wes Bethel,et al.  Sort-first, distributed memory parallel visualization and rendering , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[71]  Thomas Funkhouser,et al.  Sort-First Parallel Rendering with a Cluster of PCs , 2000 .

[72]  Andrew S. Tanenbaum,et al.  Operating systems: design and implementation , 1987, Prentice-Hall software series.

[73]  Gerrit Voss,et al.  A multi-thread safe foundation for scene graphs and its extension to clusters , 2002, EGPGV.

[74]  Carlos Andújar,et al.  Integrating Occlusion Culling and Levels of Detail through Hardly‐Visible Sets , 2000, Comput. Graph. Forum.

[75]  Marc Levoy,et al.  Efficient ray tracing of volume data , 1990, TOGS.

[76]  Wayne E. Carlson,et al.  Towards an interactive high visual complexity animation system , 1979, SIGGRAPH.

[77]  Peter Lindstrom,et al.  Out-of-core simplification of large polygonal models , 2000, SIGGRAPH.

[78]  William Schroeder,et al.  The Visualization Toolkit: An Object-Oriented Approach to 3-D Graphics , 1997 .

[79]  François X. Sillion,et al.  Conservative volumetric visibility with occluder fusion , 2000, SIGGRAPH.

[80]  Jarek Rossignac,et al.  Multi-resolution 3D approximations for rendering complex scenes , 1993, Modeling in Computer Graphics.

[81]  Marc Levoy,et al.  The Use of Points as a Display Primitive , 2000 .

[82]  George Drettakis,et al.  Efficient Impostor Manipulation for Real‐Time Visualization of Urban Scenery , 1997, Comput. Graph. Forum.

[83]  James H. Clark,et al.  Hierarchical geometric models for visible surface algorithms , 1976, CACM.

[84]  Michael Wimmer,et al.  Visibility Preprocessing with Occluder Fusion for Urban Walkthroughs , 2000, Rendering Techniques.

[85]  Cláudio T. Silva,et al.  Interactive out-of-core isosurface extraction , 1998, Proceedings Visualization '98 (Cat. No.98CB36276).

[86]  A. Heirich,et al.  Scalable distributed visualization using off-the-shelf components , 1999, Proceedings 1999 IEEE Parallel Visualization and Graphics Symposium (Cat. No.99EX381).

[87]  Cláudio T. Silva,et al.  Visualizing spatial and temporal variability in coastal observatories , 2003, IEEE Visualization, 2003. VIS 2003..

[88]  Dipl.-Ing,et al.  Real-time Rendering , 2022 .

[89]  Christopher G. Prince Progressive Meshes for Large Models of Arbitrary Topology , 2000 .

[90]  Marc Levoy,et al.  QSplat: a multiresolution point rendering system for large meshes , 2000, SIGGRAPH.

[91]  Michael Garland,et al.  Surface simplification using quadric error metrics , 1997, SIGGRAPH.

[92]  Bruce F. Naylor,et al.  Set operations on polyhedra using binary space partitioning trees , 1987, SIGGRAPH.

[93]  William J. Dally,et al.  Point Sample Rendering , 1998, Rendering Techniques.

[94]  Cláudio T. Silva,et al.  The Prioritized-Layered Projection Algorithm for Visible Set Estimation , 2000, IEEE Trans. Vis. Comput. Graph..

[95]  Gavin S. P. Miller,et al.  Hierarchical Z-buffer visibility , 1993, SIGGRAPH.

[96]  Henrik Wann Jensen,et al.  Ray Tracing Point Sampled Geometry , 2000, Rendering Techniques.

[97]  Laurent Moll,et al.  Sepia: scalable 3D compositing using PCI Pamette , 1999, Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375).

[98]  Jihad El-Sana,et al.  Adaptive Real-Time Level-of-Detail-Based Rendering for Polygonal Models , 1997, IEEE Trans. Vis. Comput. Graph..

[99]  Santiago V. Lombeyda,et al.  Scalable interactive volume rendering using off-the-shelf components , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[100]  Adam Finkelstein,et al.  Non-photorealistic virtual environments , 2000, SIGGRAPH.

[101]  Matthias Zwicker,et al.  Surfels: surface elements as rendering primitives , 2000, SIGGRAPH.

[102]  Carlo H. Séquin,et al.  Visibility preprocessing for interactive walkthroughs , 1991, SIGGRAPH.

[103]  Jung Hong Chuang Level of Detail for 3D Graphics , 2002 .

[104]  Cláudio T. Silva,et al.  Integrating occlusion culling with view-dependent rendering , 2001, Proceedings Visualization, 2001. VIS '01..

[105]  Daniel G. Aliaga,et al.  MMR: an interactive massive model rendering system using geometric and image-based acceleration , 1999, SI3D.

[106]  Jihad El-Sana,et al.  External Memory View‐Dependent Simplification , 2000, Comput. Graph. Forum.

[107]  Kenneth Moreland,et al.  Sort-last parallel rendering for viewing extremely large data sets on tile displays , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[108]  James T. Kajiya,et al.  Ray tracing complex scenes , 1986, SIGGRAPH.

[109]  Carlo H. Séquin,et al.  Management of large amounts of data in interactive building walkthroughs , 1992, I3D '92.

[110]  Paolo Cignoni,et al.  External Memory Management and Simplification of Huge Meshes , 2003, IEEE Trans. Vis. Comput. Graph..

[111]  Mark A. Duchaineau,et al.  ROAMing terrain: Real-time Optimally Adapting Meshes , 1997, Proceedings. Visualization '97 (Cat. No. 97CB36155).

[112]  Daniel C. Howe,et al.  Free on-line dictionary of computing , 2006 .

[113]  Jihad El-Sana,et al.  Topology Simplification for Polygonal Virtual Environments , 1998, IEEE Trans. Vis. Comput. Graph..

[114]  Richard Szeliski,et al.  Layered depth images , 1998, SIGGRAPH.

[115]  David Salesin,et al.  Hierarchical image caching for accelerated walkthroughs of complex environments , 1996, SIGGRAPH.

[116]  Hugues Hoppe,et al.  View-dependent refinement of progressive meshes , 1997, SIGGRAPH.

[117]  Dirk Bartz,et al.  Jupiter: a toolkit for interactive large model visualization , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[118]  Klaus H. Hinrichs,et al.  Efficient Bulk Operations on Dynamic R-Trees , 1999, Algorithmica.

[119]  Henry Fuchs,et al.  A sorting classification of parallel rendering , 1994, IEEE Computer Graphics and Applications.

[120]  Cláudio T. Silva,et al.  Visibility-based prefetching for interactive out-of-core rendering , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[121]  Jihad El-Sana,et al.  Generalized View‐Dependent Simplification , 1999, Comput. Graph. Forum.

[122]  Marc Levoy,et al.  Streaming QSplat: a viewer for networked visualization of large, dense models , 2001, I3D '01.

[123]  Pat Hanrahan,et al.  Distributed Rendering for Scalable Displays , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[124]  Alvy Ray Smith,et al.  Plants, fractals, and formal languages , 1984, SIGGRAPH.

[125]  E. Adelson,et al.  The Plenoptic Function and the Elements of Early Vision , 1991 .

[126]  Lance Williams,et al.  Pyramidal parametrics , 1983, SIGGRAPH.

[127]  William V. Baxter,et al.  HLODs for faster display of large static and dynamic environments , 2001, I3D '01.

[128]  Jitendra Malik,et al.  Modeling and Rendering Architecture from Photographs: A hybrid geometry- and image-based approach , 1996, SIGGRAPH.

[129]  John G. Eyles,et al.  PixelFlow: high-speed rendering using image composition , 1992, SIGGRAPH.

[130]  Richard Szeliski,et al.  The lumigraph , 1996, SIGGRAPH.

[131]  Yizhou Yu,et al.  Efficient View-Dependent Image-Based Rendering with Projective Texture-Mapping , 1998, Rendering Techniques.

[132]  Michael Wimmer,et al.  Instant Visibility , 2001, Comput. Graph. Forum.