Accelerating k+-buffer using efficient fragment culling

In the last decade, significant research has been conducted for addressing the problem of multi-fragment rendering from different perspectives. While the hardware-accelerated A-buffer is the dominant structure for holding multiple fragments via per-pixel linked lists, several variants have been proposed to alleviate the cost of excessive allocation and random access of video-memory. k-buffer is a widely-accepted A-buffer approximation, able to capture the k-closest to the viewer fragments, due to its reduced memory and computation requirements. To alleviate contention of distant fragments when rendering highly-complex scenes, k+-buffer [Vasilakis and Fudos 2014] concurrently performs culling checks to efficiently discard fragments that are farther from all currently maintained fragments. Unfortunately, the fragment elimination process is performed inside the pixel shader execution, thus not exploiting the performance gain of hardware-accelerated early-Z culling. Furthermore, it depends on the fragment arrival order and requires the insertion of k fragments to start performing any culling tests.