A List-Priority Rendering Algorithm for Redisplaying Projected Surfaces

Projected grid surfaces are a particularly interesting subset of bivariate parametric functions. Images generated using three-dimensional computer graphics methods and those resulting from ideal pin-hole cameras fall into this class. Often, a range image is provided in addition to the actual image, this may be in the form of a Z-buffer for synthetic images or stereo-disparity field for acquired images. In this research I report on an algorithm for computing the visible subset of a projected surface from any arbitrary view. This method has several important properties. It determines an occlusion-compatible paint order such that surfaces closest to the desired viewpoint are drawn last, thus overwriting any previously rendered surface. This painting order is determined independent of the range information. Also, facets of the image are drawn sequentially, taking advantage of local spatial coherency. This report also describes a method for the fast rendering of small triangles using a table driven approach. Introduction A classic problem in computer graphics is the display of bivariate functions and surfaces of the form z = f(x, y). Several special-purpose visibility algorithms have been developed to render these specific types of surfaces, which are often called gridded surfaces or height fields. The purpose of this research is to develop a visibility algorithm for a related class of gridded surfaces, the projected grid surface. One of the earliest solutions to the gridded surface problem was given by Kubert, Szabo, and Guilieri [Kubert68]. Later, Wright enhanced Kubert’s algorithm resulting in the familiar floating horizon algorithm, which is still commonly used today [Wright73]. More recently, improved algorithms for rendering arbitrary views of bivariate surfaces have been suggested by [Anderson82] and [Wang90]. All of these algorithms for displaying gridded surfaces compute a hidden-line solution instead of a hidden-surface solution as is common in other computer graphics applications. This seems reasonable since a hidden-line representation can provide important insights into a surface’s shape beyond what a smooth-shaded image can do. This is particularly true when the surface is, on average, smooth, as is the case for most mathematical surfaces. There are, however, striking similarities between the popular floating horizon hiddenline algorithm and common hidden-surface algorithms, such as the Z-buffer algorithm. Both algorithms operate in image space and are tightly-coupled with the rasterization A List-Priority Rendering Algorithm for Redisplaying Projected Surfaces Leonard McMillan Comp236 Semester Project 2 process. Both algorithms require a comparison operation for every pixel potentially displayed in order to determine the visibility at that sample location or column. The floating horizon algorithm, however, has the advantage that it is more space efficient since it only requires two row-sized buffers, while the Z-buffer algorithm requires a full screensized array of depth values. In contrast, the hidden-line algorithms suggested by Anderson and Wang operate in object space. They resolve the visibility of line segments based on the unique properties of a gridded data structure. One advantage of their approach is that list-priority rendering techniques, which do not involve comparisons at each pixel displayed, can be used to generate the result. The major objective of this research is to adapt these object-space techniques to a different class of gridded surfaces. The distinguishing characteristic between projected grid surfaces and bivariate surfaces is that the grid parameterization of a projected surface is imposed after projection. The actual three-space coordinates of these grid sample points are not constrained to lie on any sort of lattice or parametric grid, as bivariate functions are. Furthermore, the grid structure imposed upon a projected grid is only valid for a given center of projection; for any other point in space the surface is not guaranteed to lie on a grid. Thus, the grid coordinates only make sense when considered in conjunction with a given set of view parameters. In contrast, the parametric definition of a bivariate surface is independent of the viewpoint. This is equivalent to saying that the defining function, z = f(x,y), of the bivariate surface does not correspond to any perspective view of the function, whereas a projected grid surface does correspond to some view. The question arises: what is the importance of projected grid surfaces? Consider that virtually all naturally acquired imagtry, such as photographs and video images, are projected grids. Most three-dimensional computer graphics renderings correspond to projected grids. Therefore, an obvious application for the rendering of projected surfaces is the redisplay of existing images from a different point-of-view. If efficient methods for this redisplay could be found, it would allow the reuse of previously computed images in the computation of new views of the same data set. A List-Priority Rendering Algorithm for Redisplaying Projected Surfaces Leonard McMillan Comp236 Semester Project 3 Definitions A projected grid surface is a bivariate surface defined over some domain x’0, x’1, ..., x’n and y’0, y’1, ..., y’n, where any point on the grid, P’ = (x’i, y’j), is the projection of some real point, P, in a higher dimensional space, such that P = (x, y, w), x’i = x/w, and y’j = y/w. Projection grids differ from typical bivariate surfaces in that the grid structure is imposed after the projection rather than before. Points which lie on the projection grid, P’ij = (x’i, y’j), are called grid points. The region of the projected grid surface which is bounded by the grid points (x’i, y’j), (x’i+1, y’j), (x’i+1, y’j+1), and (x’i, y’j+1) is the called the facet, Fij. Any particular planar projection or view, V, can be characterized with the following four parameters: a center of projection, or eye position, ; a vector from the eye to the origin of the viewplane, ; and two basis vectors which sweep out the viewplane, and , in the positive i and j directions respectively. This formulation is slightly more general than the typical characterization which likewise includes an eye position and a look-at vector, but in place of the two basis vectors it uses a field of view and an aspect ratio. The proposed form is capable of representing skewed projections (if l, u, and v are not orthogonal) and projections where the field-of-view is not symmetrical about the look-at direction. Both the original projection grid (denoted as V0) and the resulting view (denoted as Vi) can be described with their own unique set of viewing parameters, , and . The components of V are shown in the following diagram. The locus of potential points, , that project onto a given grid point P’ij of the projection grid described by view, Vx, are described by the following equation: This implies that each grid point, (x’i, y’j), requires an associated value, t, as part of its definition in order to uniquely identify a given point. The t value is analogous to the z value stored in a Z-buffer, or the ray-length maintained by a raycasting algorithm. While t is an important element of the reprojection process, it is, surprisingly, not required to establish the relative visibility of facets. e l u v V0 e0 l0 u0 v0 , , ,     = Vi ei li ui vi , , ,     =