We present a simple but powerful algorithm for optimizing the usage
of hardware occlusion queries in arbitrary complex scenes. Our
method minimizes the number of issued queries and reduces the
delays due to the latency of query results. We reuse the results of
the occlusion queries from the last frame in order to initiate and
schedule the queries in the next frame. This is done by processing
nodes of a spatial hierarchy in front-to-back order, interleaving
occlusion queries with the rendering of certain previously visible
nodes. The proposed scheduling of the queries makes use of spatial
and temporal coherence of visibility. Despite its simplicity, the
algorithm achieves good culling efficiency for scenes of various
characteristics. The implementation of the algorithm is
straightforward, and it can be easily integrated in existing
real-time rendering packages using various spatial data structures.
occlusion culling, visibility, real-time rendering, occlusion query
Videos MPEG 1 format.
||Powerplant Walkthrough: Illustrates visiblity in the Power Plant model (Note: only part of the model was used to create the video) (31MB).
||City Walkthrough: Visibility in the city scene (17MB).
||Teapot scene: Visibility in a scene with 2500 teapots (note: 5000 teapots were used for the results in the paper) (9MB).