---
title: "A-buffer method"
subject: "Computer Graphics"
chapter: 7
key: "semester_5/computer_graphics:a-buffer-method"
source: https://www.bctengineer.com/q/semester_5/computer_graphics/a-buffer-method
site: BCT Engineering
---

# A-buffer method

Computer Graphics · Chapter 7: Visible Surface Determination

- Asked in: 2082 Kartik (new course), 4 marks; 2068 Chaitra, 6 marks (asked 2 times)
- Video: [A-BUFFER ALGORITHM](https://www.youtube.com/watch?v=eFwif-Iuf90) — Unacademy Computer Science
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/computer_graphics/a-buffer-method
- Whole chapter: https://www.bctengineer.com/md/semester_5/computer_graphics/chapter-7

## Question

Describe (explain) the A-buffer method of visible surface detection, i.e. how it determines the hidden surfaces.

## Short answer

The A-buffer extends the Z-buffer by storing a linked list of surface records for pixels with multiple contributions, each containing colour, opacity, depth, and area coverage. After all surfaces are processed, they are sorted by depth and blended front-to-back, supporting transparency and anti-aliasing.

## Answer

The **A-buffer (anti-aliased, area-averaged, accumulation buffer) method** extends the Z-buffer so that several surfaces can be kept for each pixel. It allows transparent surfaces and anti-aliasing. It was developed for the REYES system.

**Each A-buffer position has two fields:**
- **Depth field:** stores a real number.
- **Intensity field:** stores surface intensity or a pointer.

**Cases**
- If depth field ≥ 0: only one surface covers the pixel. The depth field holds the depth, and the intensity field holds the surface colour.
- If depth field < 0: several surfaces contribute to the pixel. The intensity field then holds a pointer to a **linked list** of surface data.

```text
Pixel (x,y):  depth < 0 | pointer
                          |
                          v
            [RGB, opacity, depth, % area coverage, surface id, next] -> [...] -> NULL
```

Each surface record in the list stores: RGB intensity components, opacity (transparency) parameter, depth, percent of area coverage, surface identifier, other rendering parameters, and a pointer to the next surface.

**Determining the visible surfaces**
1. Process polygons one by one; for each pixel it covers, add its record to the pixel's list (or set the depth/intensity if it is the first and covers the whole pixel).
2. Surfaces are scan-converted using subpixel masks, so partial coverage of a pixel is recorded.
3. After all polygons are processed, for each pixel the surfaces are sorted by depth.
4. Then the final colour is found by blending the intensities of the surfaces in the list, using their opacity and area coverage (front to back).

So hidden surfaces are those fully covered by nearer opaque surfaces, and the transparent or partly covering surfaces are blended. The method is slower and needs more memory than the Z-buffer.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What does the A-buffer add over the Z-buffer?
   A. Faster execution with less memory
   B. Back-face removal
   C. Sorting of whole objects
   D. Several surfaces per pixel, allowing transparency and anti-aliasing
   Answer: D. Keeping multiple surfaces enables blending and area-averaging. (Key point: Purpose)

2. In an A-buffer position, what does depth field < 0 mean?
   A. Several surfaces contribute and the intensity field points to a linked list
   B. Only one surface covers the pixel
   C. The pixel is background
   D. The surface is behind the viewer
   Answer: A. Depth >= 0 means a single surface; negative means a list. (Key point: Depth field meaning)

3. Which item is stored in each surface record of the list?
   A. Only depth and colour
   B. Edge slopes and polygon flags
   C. RGB, opacity, depth, percent area coverage, surface id, next pointer
   D. Pixel coordinates and normals
   Answer: C. Opacity and coverage are needed for the final blend. (Key point: Surface record)

4. How is the final pixel colour found?
   A. Take the nearest surface only
   B. Sort surfaces by depth and blend them using opacity and area coverage
   C. Average depths of all surfaces
   D. Use the first polygon processed
   Answer: B. Blending in depth order gives transparency and anti-aliased edges. (Key point: Final colour)

## Related in Computer Graphics

- [Scan-line method of visible surface](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_graphics%3Ascan-line-visible-surface) — Computer Graphics, chapter 7, asked 3×
- [Z-buffer (depth buffer) method](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_graphics%3Az-buffer-method-explain) — Computer Graphics, chapter 7, asked 7×
- [Z-buffer method with limitation](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_graphics%3Az-buffer-with-limitation) — Computer Graphics, chapter 7, asked 3×
- [VSD factors, classes, Z/A-buffer](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_graphics%3Avisible-surface-factors-classes) — Computer Graphics, chapter 7
- [Compare Z-buffer, A-buffer; scan-line](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_graphics%3Acompare-z-a-buffer-scan-line) — Computer Graphics, chapter 7
- [Back-face detection algorithm](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_graphics%3Aback-face-detection-method) — Computer Graphics, chapter 7, asked 8×

## Related in other subjects

- [Painting work on metal surfaces](https://www.bctengineer.com/question.md?key=semester_6%2Fbuilding_technology%3Apainting-metal) — Building Technology, chapter 9, asked 2×
- [Classification of CAD surface entities](https://www.bctengineer.com/question.md?key=semester_4%2Fcomputer_aided_design%3Asurface-entities-classification) — Computer Aided Design, chapter 4
