Virtual 3D models of machines, buildings and work pieces are often simulated through their surfaces in the form of triangles. The more detailed the models, the larger the amount of used triangles. Such models' triangle count can overstrain a single computer's ability to render virtual scenes in real-time. Sometimes the virtual scene is so large that it cannot even be stored completely in the computer's main memory. Over the year we have developed two algorithms to accelerate the computation of such scenes:
Sequential Occlusion Culling using the Hull Tree
Occlusion culling is a common approach to determine occluded objects and to discard them from rendering. To accelerate the determination of occluded objects, usually boxes, covering these objects, are tested for visibility. In most cases these boxes are too large and yield imprecise results. For this reason we have developed a hierarchical, spatial data structure - the so called hull tree , which uses hulls instead of boxes. These hulls cover the interior objects more tightly and yield more accurate visibility tests.
The data structure was first used in a sequential real-time rendering system. Hull tree's evaluation has shown that its storage requirements are only a little higher than the requirements of common data structures. Hulls' determination requires only a few additional computations. Due to the small additional storage and computational needs the hull tree increases the rendering performance significantly.
Parallel Occlusion Culling in Heterogeneous PC Clusters
Parallel rendering approaches accelerate the rendering process by using multiple computers for the computations. Usually these parallel rendering systems consist of nodes with equal performance. Due to hardware evolution more and more PC clusters that consist of nodes with different performance are appearing. Our algorithm works with such heterogeneous cluster systems. The challenge deal with the strongly differing latencies in nodes.

Complex 3D model of a Boeing 777 rendered with the parallel occlusion culling approach using a heterogeneous PC cluster
The nodes fulfill two tasks. The objects of the virtual scene are distributed over these nodes. Thus, the cluster serves as a kind of external memory for a client, which renders the virtual scene. Again, the hull tree is the basis for our parallel occlusion culling approach. To use the hull tree in parallel, in a memory efficient manner, we use simplifications of the scene’s objects. Each cluster node stores a small subset of the scene’s original objects and in addition a simplification for each additional object. The second task is to support the client with its image computations. If an object is requested from a node, it is tested for visibility instead of sending it blindly. Thus, only visible objects are sent across the network.
The evaluation has shown that this technique allows the usage of cluster nodes that have only weak rendering performance and are connected by a relatively slow network.

Comparison of the approximations using the more precise hull tree (blue) and the standard octree (red)
Supported by:
Contact:
Benjamin Eikel M. Sc.
E-mail: eikel@upb.de
Phone: +49 (0) 5251/60 64 52
Dr. rer. nat. Matthias Fischer
E-mail: mafi@upb.de
Phone: +49 (0) 5251/60 64 66

