Hierarchical rendering of complex environments

We present three related algorithms designed to accelerate rendering of very complex, densely occluded scenes composed of geometric models where surface shading is restricted to local illumination methods. The algorithms share the same basic structure, maintaining hierarchical data structures in both object space and image space to enable finding visible geometry by logarithmic search. To render a scene, the basic algorithm traverses nodes in the object-space hierarchy (an octree) in front-to-back order, testing the bounding volumes of nodes for visibility and culling hidden nodes. Thus, only visible nodes and their children in the hierarchy are visited,$\sp1$ and only primitives in visible nodes need to be rendered. This procedure culls most hidden geometry in densely occluded scenes, but some geometry will still overlap on the screen when primitives are projected. To cull remaining hidden geometry, we perform hierarchical culling in image space, using the image-space hierarchy to maintain visibility information about previously rendered geometry. Two of the algorithms, hierarchical z-buffer visibility and hierarchical polygon tiling, have exceptional performance and are appropriate for interactive applications. The hierarchical z-buffer algorithm maintains depth samples in a pyramid, permitting z-buffer depth comparisons to be performed hierarchically, which enables very rapid culling of hidden octree cubes and hidden primitives. Visible primitives are rendered with the speed of traditional incremental scan conversion. The algorithm's hierarchical culling capabilities make it possible to compute standard z-buffer images of densely occluded scenes much faster than traditional z-buffering. Alternatively, instead of performing visibility operations by z-buffering, the second variation of the basic algorithm employs a novel polygon tiling algorithm to cull hidden octree cubes and tile potentially visible polygons. Called hierarchical polygon tiling, this method traverses scene polygons front to back and performs tiling by Warnock-style recursive subdivision of image space. Visibility information is maintained in an image-space pyramid of coverage masks, which permits subdivision to be driven very efficiently by boolean mask operations. When antialiasing is performed by oversampling and filtering, this tiling algorithm is much faster than hierarchical z-buffering. The third algorithm, error-bounded antialiased rendering, is much slower than the other two algorithms, but is unique in its ability to produce antialiased images of guaranteed accuracy. This algorithm also culls hidden octree cubes and tiles potentially visible polygons by recursive subdivision of the image-space hierarchy. By using interval methods to control subdivision of image space, the algorithm is able to identify regions where geometry or shading is complex and do as much work as necessary within those regions to produce accurate results. Consequently, each pixel of the output image can be guaranteed to be within a user-specified error tolerance of the filtered underlying continuous image. To the best of my knowledge, the images produced with this algorithm are the only computer-generated images of guaranteed accuracy that have ever been created of extremely complex scenes or scenes rendered with complex shaders. ftn$\sp1$With some variations of the algorithm, some nearly visible nodes and their children are also visited.

[1]  Jack Bresenham,et al.  Algorithm for computer control of a digital plotter , 1965, IBM Syst. J..

[2]  John Edward Warnock,et al.  A hidden surface algorithm for computer generated halftone pictures , 1969 .

[3]  Gary S. Watkins,et al.  A real time visible surface algorithm , 1970 .

[4]  Edwin Earl Catmull,et al.  A subdivision algorithm for computer display of curved surfaces. , 1974 .

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

[6]  Peter R. Atherton,et al.  Hidden surface removal using polygon area sorting , 1977, SIGGRAPH.

[7]  D R Reddy,et al.  Representation of Three-Dimensional Objects. , 1978 .

[8]  Edwin E. Catmull,et al.  A hidden-surface algorithm with anti-aliasing , 1978, SIGGRAPH.

[9]  Donald P. Greenberg,et al.  Transparency for computer synthesized images , 1979, SIGGRAPH.

[10]  Ramon E. Moore Methods and applications of interval analysis , 1979, SIAM studies in applied mathematics.

[11]  Henry Fuchs,et al.  On visible surface generation by a priori tree structures , 1980, SIGGRAPH '80.

[12]  Turner Whitted,et al.  An improved illumination model for shaded display , 1979, CACM.

[13]  Donald P. Greenberg,et al.  A visible polygon reconstruction algorithm , 1981, SIGGRAPH '81.

[14]  Steven W. Zucker,et al.  Frame-to-frame coherence and the hidden surface computation: constraints for a convex world , 1982, TOGS.

[15]  Jules Bloomenthal,et al.  Edge Inference with Applications to Antialiasing , 1983, SIGGRAPH.

[16]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[17]  Kansei Iwata,et al.  Jag-Free Images on Raster Displays , 1983, IEEE Computer Graphics and Applications.

[18]  G. Alefeld,et al.  Introduction to Interval Computation , 1983 .

[19]  Larry Rudolph,et al.  A parallel scan conversion algorithm with anti-aliasing for a general-purpose ultracomputer , 1983, SIGGRAPH.

[20]  David F. Rogers,et al.  Procedural Elements for Computer Graphics , 1984 .

[21]  Robert L. Cook,et al.  Distributed ray tracing , 1984, SIGGRAPH.

[22]  Franklin C. Crow,et al.  Summed-area tables for texture mapping , 1984, SIGGRAPH.

[23]  Samuel P. Uselton,et al.  Statistically optimized sampling for distributed ray tracing , 1985, SIGGRAPH.

[24]  Carlo H. Séquin,et al.  Visible Feature Return at Object Resolution , 1985, IEEE Computer Graphics and Applications.

[25]  Mark A. Z. Dippé,et al.  Antialiasing through stochastic sampling , 1985, SIGGRAPH.

[26]  Robert L. Cook,et al.  Stochastic sampling in computer graphics , 1988, TOGS.

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

[28]  Bernard Chazelle,et al.  Intersection of convex objects in two and three dimensions , 1987, JACM.

[29]  Andrew S. Glassner,et al.  Spacetime ray tracing for animation , 1988, IEEE Computer Graphics and Applications.

[30]  Brian Wyvill,et al.  ADAPTIVE VOXEL SUBDIVISION FOR RAY TRACING , 1988 .

[31]  Hanan Samet,et al.  Applications of spatial data structures , 1989 .

[32]  John M. Airey,et al.  Increasing update rates in the building walkthrough system with automatic model-space subdivision and potentially visible set calculations , 1990 .

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

[34]  Eugene Fiume,et al.  Coverage masks and convolution tables for fast area sampling , 1991, CVGIP Graph. Model. Image Process..

[35]  John M. Snyder,et al.  Interval analysis for computer graphics , 1992, SIGGRAPH.

[36]  Bruce F. Naylor,et al.  Interactive solid geometry via partitioning trees , 1992 .

[37]  Bruce F. Naylor Partitioning tree image representation and generation from 3D geometric models , 1992 .

[38]  Michael Kass,et al.  CONDOR: constraint-based dataflow , 1992, SIGGRAPH.

[39]  Micha Sharir,et al.  A simple output-sensitive algorithm for hidden surface removal , 1992, TOGS.

[40]  Seth Teller,et al.  Visibility Computations in Densely Occluded Polyhedral Environments , 1992 .

[41]  Ned Greene,et al.  Detecting Intersection of a Rectangular Solid and a Convex Polyhedron , 1994, Graphics gems.