I/O Optimal Isosurface Extraction Yi-Jen Chiang Cl´ audio T. Silva March 1997; revised October 1997 Conference version appeared in Proc. IEEE Visualization ’97 Abstract In this paper we give I/O-optimal techniques for the extraction of isosurfaces from volumetric data, by an application of the I/O-optimal interval tree of Arge and Vitter. The main idea is to preprocess the dataset once and for all to build an efficient search structure in disk, and then each time we want to extract an isosurface, we perform an output-sensitive query on the search structure to retrieve only those active cells that are intersected by the isosurface. During the query operation, only two blocks of main memory space are needed, and only those active cells are brought into the main memory, plus some negligible overhead of disk accesses. This implies that we can efficiently visualize very large datasets on workstations with just enough main memory to hold the isosurfaces themselves. We also give simple preprocessing algorithms for building the static I/O interval tree that achieve the optimal I/O cost. The implementation of our techniques is delicate but not complicated. We give the first implementation of the I/O-optimal interval tree, and also implement our methods as an I/O filter for Vtk’s isosurface extraction for the case of unstructured grids. We show that, in practice, our algorithms improve the performance of isosurface extraction by speeding up the active-cell searching process so that it is no longer a bottleneck. Moreover, this search time is independent of the main memory available. The practical efficiency of our techniques reflects their theoretical optimality. Keywords: Isosurface Extraction, Marching Cubes, Interval Tree, Scientific Visualization. 1 Introduction Isosurface extraction represents one of the most effective and powerful techniques for the investigation of volume datasets. It has been used extensively, particularly in visualization [19, 20], simplification [14], and implicit modeling [24], just to name a few. Isosurfaces also play an important role in other areas of science such as biology and medicine, since they can be used to study and perform detailed measurements of proper- ties of the datasets. In fact, nearly all visualization packages include an isosurface extraction component. Its widespread use makes efficient isosurface extraction a very important problem. The problem of isosurface extraction can be stated as follows. A scalar volume dataset consists of tuples x x , where x is a 3D point and is a scalar function defined over 3D points. Given an isovalue (a scalar value) , the extraction of the isosurface of is to compute and display isosurface x x . The computational process of isosurface extraction can be viewed as consisting of two phases. First, in the search phase, one finds all cells of the dataset that are intersected by the isosurface; such cells are called active The conference version of this paper appeared in Proc. IEEE Visualization ’97, Oct. 1997. Department of Applied Mathematics and Statistics, SUNY Stony Brook, NY 11794-3600; yjc@ams.sunysb.edu. Supported in part by NSF Grant DMS-9312098. Department of Applied Mathematics and Statistics, SUNY Stony Brook, NY 11794-3600; csilva@ams.sunysb.edu. Partially supported by Sandia National Labs and the Dept. of Energy Mathematics, Information, and Computer Science Office, and by the National Science Foundation (NSF), grant CDA-9626370. 1