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

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



Ooops! some limitations of this A-buffer implementation ?
Some References
Tweet
[ Subscribe to Geeks3D latest news by email ]














Thanks for this article !
It appeared only within the “alpha-blending with alpha correction” mode and was a problem when the the first fragment is a backface.
I just corrected the bug shown in the last image
I updated the zip file on the website, you can download the new one.
You’re welcome Cyril!
Glad to see you have found the bug
Implementing transparency algorithm Stencil Routed A-Buffer in DX 10:
http://www.geeks3d.com/forums/index.php/topic,1308.0.html
[...] has updated its OpenGL 4.0 demo about A-buffer. This new version uses less memory for storing the per-pixel fragments (the memory footprint has [...]
[...] Go to GeeXLab [...]