Frustum Casting for Progressive, Interactive Rendering
暂无分享,去创建一个
Efficient visible surface determination algorithms have long been a fundamental goal of computer graphics. We discuss the well-known ray casting problem: given a geometric scene description, a synthetic camera, and a viewport which discretizes the camera film plane into pixels, ray casting identifies the visible surface at each pixel, i.e., that scene primitive which is first encountered by an eye ray directed through the pixel center. Interactive rendering systems have not ordinarily been based on ray casting, due to its computational cost. Instead, the dominant method for achieving interactive rendering is hardware-assisted rasterization and depth buffering of polygons, often produced by static or dynamic tesselation of higher-level objects. Modern polygon rasterization architectures are extremely powerful, having undergone an extensive development path. Several trends indicate, however, that alternatives to polygon rasterization and depth buffering deserve examination in the design of future interactive rendering systems. The first trend is the number and breadth of proposed algorithmic and hardware methods to lessen transformation, rasterizer and depth buffer load while viewing models of high complexity. A second, related trend is that geometric models are, increasingly often, larger than ordinary physical memories, lending greater importance to memory coherence considerations. Finally, general purpose processors have grown very powerful, enabling flexible, dynamic retargeting of computational resources to differing subtasks while maintaining responsiveness. A rendering system based on such processors could have significant advantages over dedicated hardware. In light of the above, we explored an alternative, general rendering architecture based on ray casting. In seeking to build an interactive software ray caster, we studied existing visible surface algorithms. Combining three such algorithms, we synthesized frustum casting, a novel algorithm for per-pixel visible surface identification in general scenes. The algorithm samples discretely, but operates in object space, and is exact and efficient. We demonstrate a prototype software renderer based on frustum casting, which achieves interactivity through ``just-in-time'''' sampling, and progressive image improvement through deferral of intersection and shading operations. Frustum casting well addresses the technological trends listed above. We believe that it and other ray-based rendering methods may be practically incorporable by designers of future high-performance rendering architectures.