Computer Graphics Volume 18, Number 3 July 1984
The
A-buffer, an Antialiased Hidden Surface Method
Loren Carpenter
Computer Graphics Project
Computer Division
Lucasfilm Ltd
Abstract
The A-buffer (anti-aliased, area-averaged, accumulation
buffer) is a general hidden surface mechanism suited to
medium scale virtual memory computers. It resolves visi-
bility among an arbitrary collection of opaque, tran-
sparent, and intersecting objects. Using an easy to com-
pute Fourier window (box flter), it increases the effective
image resolution many times over the Z-buffer, with a
moderate increase in cost. The A-buffer is incorporated
into the REYES 3-D rendering system at Lucasfilm and
was used successfully in the "Genesis Demo" sequence in
Star Trek II.
CR CATEGORIES AND SUBJECT DESCRIPTORS:
1.3.3
[Computer Graphics]:
Picture/Image Genera-
tion - Display algorithms; 1.3.7 [Computer Graph-
ics]: Three-Dimensional Graphics and Realism - Visi-
ble line/surface elimination.
GENERAL TERMS: Algorithms, Experimentation.
ADDITIONAL KEY WORDS AND PHRASES: hidden
surface, image synthesis, z-buffer, a-buffer, antialias-
ing, transparency, supersampling, computer imagery.
1. Introduction
There are many hidden surface techniques known to com-
puter graphics. A designer of a 3-D image synthesis sys-
tem must balance the desire for quality with the cost of
computation. The A-buffer method, a descendant of the
well-known Z-buffer, has proven to deliver moderate to
good quality images at moderate cost. At each pixel,
sufficient information is available to increase the effective
Permission to copy without fee all or part of this material is granted
provided that the copies are not made or distributed for direct
commercial advantage, the ACM copyright notice and the title of the
publication and its date appear, and notice is given that copying is by
permission of the Association for Computing Machinery. To copy
otherwise, or to republish, requires a fee and/or specific permission.
© 1984 ACM 0-89791-138-5/84/007/0103 $00.75
resolution of the image several times over that of a simple
Z-buffer.
2. Historical Perspective
The A-buffer belongs to the class of hidden surface algo-
rithms called "scanline". The REYES (Renders Every-
thing You Ever Saw) system, of which the A-buffer is a
part, is a scanline renderer, but scanline order is not
required by the A-buffer.
The first scanline algorithms[7] did perspective, clipping,
sorting, visibility determination, and "filtering" all at the
same time. They resolved visibility at one point per
pixel, and aliased terribly, although our standards were
different then. In 1974, E. Catmull described the Z-buffer
method[2]. A Z-buffer is a screen-sized array of pixels
and Z's. Objects, in no particular order, are examined to
determine which pixels they cover. At each covered
pixel, the perspective Z depth of the object is determined
and compared with the Z in the array. If the new Z is
closer, then the new Z, and the objeet's shade at this
point, replaces the array's Z and pixel. This development
started the trend toward modularizing the rendering pro-
cess, as a Z-buffer could comprise the visibility section of
almost any kind of renderer. Although extremely fast
and simple, the Z-buffer aliases too much and cannot
render transparent objects correctly.
The aliasing problems of the Z-buffer can be softened
somewhat by modifying it from a point sampler to a line
sampler so that visibility is determined over horizontal
segments of scanlines[1]. In this way the line Z-buffer is
very similar to the classical polygon algorithms of Wat-
kins and others[7]. Polygons are sliced horizontally as in
Watkins, but no X sorting is done. Instead, polygon seg-
ments conditionally overwrite others based on Z depth.
The segment boundaries do not have to be coincident
with pixel boundaries. This added information clears up
aliasing of nearly vertical edges. However, nearly hor-
izontal edges still alias and dropouts of small objects still
occur.
In 1978, E. Catmull introduced the "ultimate" visibility
method[3], a full polygon hidden surface process, based
103