[3D Programming] Fast A-Buffer Algorithm Demo Using OpenGL 4.0

OpenGL 4.0 A-Buffer demo
800k+ polygons rendered at more than 400 FPS with transparency


Icare3D has publshed a small OpenGL 4.0 demo (with code source and executable) that shows an implementation of the A-buffer algorithm.

You can download the demo HERE.

This demo works on GTX 400 series only.

What is an A-buffer? In its simplest form, an A-buffer is a memory buffer that stores a list of fragments per pixel. A Z-buffer stores only the nearest fragment for each pixel while an A-buffer can store several fragments for each pixel.

Thanks to some sorting algorithms (like the bitonic sort or the bubble sort), the fragments can be blended in the right way to implement order independent transparency (or OIT) like in the demo.

The demo exploits a new NVIDIA extensions that allows random access read/write and atomic operations into global memory and textures, to implement a fast A-buffer

OpenGL 4.0 A-Buffer demo

OpenGL 4.0 A-Buffer demo

OpenGL 4.0 A-Buffer demo
Ooops! some limitations of this A-buffer implementation ?

Some References

[via]

5 thoughts on “[3D Programming] Fast A-Buffer Algorithm Demo Using OpenGL 4.0”

  1. Cyril

    Thanks for this article !
    I just corrected the bug shown in the last image 😉 It appeared only within the “alpha-blending with alpha correction” mode and was a problem when the the first fragment is a backface.
    I updated the zip file on the website, you can download the new one.

  2. Pingback: [3D Programming] Fast A-Buffer With Reduced Memory Footprint Using OpenGL 4.0 - 3D Tech News, Pixel Hacking, Data Visualization and 3D Programming - Geeks3D.com

  3. Pingback: Fast A-Buffer Algorithm Using OpenGL 4.0: GeeXLab « Gputoaster's Blog

Comments are closed.