Octree Optimization

Al Globus, CSC, NASA Ames Research Center, 18 July 1990

NAS report RNR-90-011


A number of algorithms search large, typically 3D, computational spaces for features of interest. Marching cubes isosurface generation described by Lorensen and Cline is an example. The speed of these algorithms is dependent on the time necessary to 1. find the features of interest in the data and 2. to compute over them. This paper describes an optimizing search using octrees to divide computation space. Information stored in the branch nodes is used to prune portions of computation space thus avoiding unnecessary memory references and tests for features of interest. This technique is implemented for marching cubes isosurface generation on computational fluid dynamics data. Numerical experiments were run indicating a factor of 3.8 - 9.0 overall performance increase, measured by stopwatch; and a factor of 3.9 - 9.9 speedup in calculation times as measured by the UNIX times() utility. The overhead is a one time cost of 0.2 - 2.8 the time to compute an average isosurface and O(n) space with a small constant factor. Thus, interactive rates may be approached for much larger data sets.

Postscript version