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 ?