Abstract

Occlusion culling is a common approach to accelerate real-time rendering of polygonal 3D-scenes by reducing the rendering load. Especially for large scenes, it is necessary to remove occluded objects to achieve a frame rate that provides an interactive environment. In order to benefit from the culling properly, often hierarchical data structures are used. These data structures typically create a spatial subdivision of a given scene into axis-aligned bounding boxes. These boxes can be tested quickly, but they are not very accurate. By using these boxes, the included objects are detected as visible, even if other objects occlude them (false-positives). To get perfect results, the models' original geometry included in the box has to be tested, but this would require too much computational power. To overcome this problem, original objects' approximations could be used, but typical methods for mesh simplification cannot be applied, because they do not create an outer hull for a given object. We present a model simplification algorithm, which generates simple outer hulls, consisting of only few more triangles than a box, while preserving an object's shape better than a corresponding bounding box. This approach is then extended to a hierarchical data structure, the so-called hull tree, that can be generated for a given scene to improve the visibility tests. Next, we present an approximative rendering algorithm, which combines the features of the hull tree with the use of inner hulls for efficient occlusion detection and global state-sorting of the visible objects.