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.