temp

TAPESTRY: The Art of Representation and Abstraction

Z-buffer


DEFINITION
A z-buffer is an area of memory which is used as a part of raster rendering schemes to store the depth or distance into the scene corresponding to each pixel in the image buffer. This information is used to make rendering of individual polygon pixels conditional on their depth. It has the same spatial resolution (number of pixels) as the image buffer.

EXPLANATION
It is called a z-buffer because, as part of rendering, the geometry is transformed from the model coordinate system to the eye coordinate system, with the eye at the origin and the Z-axis being parallel to the line of sight. Thus, the z-coordinate of the transformed coordinate point corresponds directly to the distance of the point from the viewplane (in an orthographic projection). Points with smaller z-coordinates are closer to the viewer.

OPERATION
An algorithm rendering a polygon into the image transforms each vertex into the eye coordinate system, where each vertex's z-depth is established. It then projects the vertexes into the picture plane, performs a viewport mapping, and rasterizes the polygon into the image. However, as part of rasterizing, the algorithm (1) computes a z-depth for each pixel by interpolation along the polygon edges and across the polygon face, and (2) compares the z-depth which the current polygon would establish for the pixel with the existing z-depth of the pixel--if the pixel would be closer to the viewplane as a result of being updated by this pixel, it is, but if the new revised pixel depth would be deeper into the image, the pixel is not updated.

BENEFITS
Z-buffers eliminate rendering errors due to intersecting polygons or cyclic-overlap (where polygon A overlaps B, which overlaps C, which overlaps A, as in an elevation of a turbine's blades).


Last updated: April, 2014

Valid HTML 4.01 Transitional Valid CSS! [report bug]