Title :
Memory-Hazard-Aware K-Buffer Algorithm for Order-Independent Transparency Rendering
Author_Institution :
Environ. Modeling & Visualization Lab., Lockheed Martin Co., Chapel Hill, NC, USA
Abstract :
The (k)-buffer algorithm is an efficient GPU-based fragment level sorting algorithm for rendering transparent surfaces. Because of the inherent massive parallelism of GPU stream processors, this algorithm suffers serious read-after-write memory hazards now. In this paper, we introduce an improved (k)-buffer algorithm with error correction coding to combat memory hazards. Our algorithm results in significantly reduced artifacts. While preserving all the merits of the original algorithm, it requires merely OpenGL 3.x support from the GPU, instead of the atomic operations appearing only in the latest OpenGL 4.2 standard. Our algorithm is simple to implement and efficient in performance. Future GPU support for improving this algorithm is also proposed.
Keywords :
digital storage; graphics processing units; rendering (computer graphics); GPU stream processors; GPU-based fragment level sorting algorithm; OpenGL 3.x support; OpenGL 4.2 standard; error correction coding; memory hazards; memory-hazard-aware k-buffer algorithm; order-independent transparency rendering; read-after-write memory hazards; significantly reduced artifacts; transparent surfaces; Computer graphics; Error analysis; Rendering (computer graphics); Volume measurements; Transparency rendering; error checking code; graphics processor; memory hazard; visibility sort; volume visualization;
Journal_Title :
Visualization and Computer Graphics, IEEE Transactions on
DOI :
10.1109/TVCG.2013.72