1 Power Plant Walkthrough: An Integrated System for Massive Model Rendering Daniel Aliaga, Jonathan Cohen, Hansong Zhang, Rui Bastos, Tom Hudson, Carl Erikson TR# 97-018 Computer Science Department University of North Carolina at Chapel Hill Abstract Computer Aided Design (CAD) and architectural models typically contain hundreds of thousands to millions of 3D primitives. In order to display these models at interactive rates, the number of primitives to be rendered must be reduced. This paper presents an experimental system which combines multiple simplification algorithms into a single framework for the rapid display of massive geometric models. We combine textured-box culling, levels-of-detail and occlusion culling into a single run-time system. We tested our framework on a 13 million triangles CAD model of a power plant and achieved highly interactive frame rates (speedups ranging from 50 to 100x) at the expense of some loss of image quality. 1. Introduction In recent years, the literature has reported many simplification approaches. The goal of these algorithms is to display a desired model at interactive frame rates. Individually, the techniques provide speedups of two to ten times at best. We set out to render a massive model at interactive rates (~10 Hz) [Funkhous93][Maciel95]. In this paper, we present a system which combines multiple techniques in order to achieve a very large combined speedup. We integrated the following methods: • Textured-Box Culling • Level-of-Detail • Occlusion Culling Textured-box culling removes all geometry outside a fixed-size box surrounding the viewpoint. The box has six precomputed textures mapped onto it depicting the subset of the model outside the box as viewed from the boxs center. Complex objects remaining inside the textured box are simplified using static level-of-detail simplification [DeHaemer91] [Cohen96] [Garland97]. Occlusion culling [Coorg97][Zhang97] is then employed to further cull objects covered by a predetermined set of occluder polygons. In addition to combining the algorithms, we used a test model one to two orders of magnitude larger than the models used with individual techniques as reported in the literature. The model size increases the database traversal time and memory management overhead. We need a single, compact database representation for all algorithms. Our system uses a combined scene graph and spatial-partitioning tree. The levels-of-detail and occluder polygons are embedded within the main database. The precomputed textures used for textured-box culling are prefetched into a host memory cache for quick access during run-time. Furthermore, the system employs a multiprocessor pipelined approach to reduce the culling and texture-prefetching overhead. Section 2 describes the individual system components. Section 3 overviews how the simplification techniques are integrated. Section 4 presents implementation details and performance data. In section 5, we outline future work. Finally, Section 6 gives some lessons learned and conclusions. 2. The Algorithm Components 2.1 Geometry Data Structure We construct a scene-graph hierarchy of a 3D model (Figure 1). Each node in the graph represents a functional component of the model. We then subdivide each node into a space-partitioning tree (octree). Geometric primitives are only stored in the leaves of the octree, although bounding boxes are stored in all nodes of the hierarchy.