A-buffer

In computer graphics, A-buffer, also known as anti-aliased, area-averaged or accumulation buffer, is a general hidden surface mechanism suited to medium scale virtual memory computers. It resolves visibility among an arbitrary collection of opaque, transparent, and intersecting objects. Using an easy to compute Fourier window (box filter), it increases the effective image resolution many times over the Z-buffer, with a moderate increase in cost.[1]

The A-buffer method is a descendant of the well known Z-buffer, which provides good quality results in moderate time.

Uses

In 3-D image synthesis system, the balance between the quality and the cost of computation has always been needed. Using a full object-precision visible-surface algorithm at each pixel is expensive. A-buffer method provides moderate quality results in moderate cost of computation.

A-buffer helps in using visibility techniques and supports all conceivable geometric modeling primitives: polygons, patches, quadrics, fractals, and so forth. It also helps to handle transparency and intersecting surfaces (and transparent intersecting surfaces). A-buffer-style methods have also been used for exact order-independent transparency on GPUs, where a pixel's fragments are captured in variable-length per-pixel structures, commonly linked lists, and then depth-sorted and composited in a later step.[2][3]

Strategy

Carpenter's A-buffer algorithm[1] addresses this problem by approximating Catmull's per-pixel object-precision area sampling[4] with per-pixel image-precision operation performed on a sub-pixel grid. Polygons are first processed in scan-line order by clipping them to each square pixel they cover. This results in list of clipped polygon fragments corresponding to each square pixel. In A-buffer methods, these fragments are stored in variable-length per-pixel lists rather than only the nearest visible fragment, although Carpenter's original implementation stored a resolved color directly for a simple fully covered pixel and used a pointer to a front-to-back fragment list for a complex pixel.[5][1] Each fragment has 4 by 8 bit mask of parts of the pixel it covers.[6]

The bit-mask for a fragment is computed by xoring together masks representing each of the fragment's edges. When all polygons intersecting a pixel have been processed, the area-weighted average of the colors of the pixel's visible surfaces is obtained by selecting fragments in depth-sorted order and using their bit masks to clip those of farther fragments.

The bit masks can be manipulated efficiently with Boolean operations. For example, two fragment bit masks can be added together to determine the overlap between them. The A-buffer algorithm saves only a small amount of additional information with each fragment. For example. It includes the fragment's z extent, but no information about which part of the fragment is associated with these z values. Thus, the algorithm must make assumptions about the sub-pixel geometry in cases in which fragment bit masks overlap in z.

References

  1. ^ a b c Carpenter, Loren (July 1984). "The A-buffer, an Antialiased Hidden Surface Method". Computer Graphics. 18 (3): 103–108. CiteSeerX 10.1.1.210.5497. doi:10.1145/964965.808585.
  2. ^ Vasilakis, Andreas A.; Papaioannou, Georgios; Fudos, Ioannis. "k+-buffer: An efficient, memory-friendly and dynamic k-buffer framework" (PDF). IEEE Transactions on Visualization and Computer Graphics.
  3. ^ "Memory-optimized order-independent transparency with Dynamic Fragment Buffer". ScienceDirect. Elsevier.
  4. ^ Catmull, Edwin (August 1978). "A Hidden-Surface Algorithm with Anti-Aliasing" (PDF). Computer Graphics. 12 (3): 6–11. doi:10.1145/965139.807360. Archived from the original (PDF) on 2016-03-04. Retrieved 2015-06-19.
  5. ^ Vasilakis, Andreas Alexandros; Vardis, Konstantinos; Papaioannou, Georgios (2020). "A Survey of Multifragment Rendering". Computer Graphics Forum.
  6. ^ Foley, James D.; Feiner, Steven K.; van Dam, Andries; Hughes, John F. (1995). Computer Graphics: Principles and Practice in C (2nd ed.). Addison-Wesley. ISBN 978-0-201-84840-3.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.