TY - GEN
T1 - Multi-fragment effects on the GPU using the k-buffer
AU - Bavoil, Louis
AU - Callahan, Steven P.
AU - Lefohn, Aaron
AU - Comba, João L D
AU - Silva, Cláudio T.
PY - 2007
Y1 - 2007
N2 - Many interactive rendering algorithms require operations on multiple fragments (i.e., ray intersections) at the same pixel location: however, current Graphics Processing Units (GPUs) capture only a single fragment per pixel. Example effects include transparency, translucency, constructive solid geometry, depth-of-field, direct volume rendering, and isosurface visualization. With current GPUs, programmers implement these effects using multiple passes over the scene geometry, often substantially limiting performance. This paper introduces a generalization of the Z-buffer, called the k-buffer, that makes it possible to efficiently implement such algorithms with only a single geometry pass, yet requires only a small, fixed amount of additional memory. The k-buffer uses framebuffer memory as a read-modify-write (RMW) pool of k entries whose use is programmatically defined by a small k-buffer program. We present two proposals for adding k-buffer support to future GPUs and demonstrate numerous multiple-fragment, single-pass graphics algorithms running on both a software-simulated k-buffer and a k-buffer implemented with current GPUs. The goal of this work is to demonstrate the large number of graphics algorithms that the k-buffer enables and that the efficiency is superior to current multipass approaches.
AB - Many interactive rendering algorithms require operations on multiple fragments (i.e., ray intersections) at the same pixel location: however, current Graphics Processing Units (GPUs) capture only a single fragment per pixel. Example effects include transparency, translucency, constructive solid geometry, depth-of-field, direct volume rendering, and isosurface visualization. With current GPUs, programmers implement these effects using multiple passes over the scene geometry, often substantially limiting performance. This paper introduces a generalization of the Z-buffer, called the k-buffer, that makes it possible to efficiently implement such algorithms with only a single geometry pass, yet requires only a small, fixed amount of additional memory. The k-buffer uses framebuffer memory as a read-modify-write (RMW) pool of k entries whose use is programmatically defined by a small k-buffer program. We present two proposals for adding k-buffer support to future GPUs and demonstrate numerous multiple-fragment, single-pass graphics algorithms running on both a software-simulated k-buffer and a k-buffer implemented with current GPUs. The goal of this work is to demonstrate the large number of graphics algorithms that the k-buffer enables and that the efficiency is superior to current multipass approaches.
KW - Blending
KW - CSG
KW - Fragment processing
KW - Graphics hardware
KW - Transparency
KW - Visibility ordering
KW - Volume rendering
UR - http://www.scopus.com/inward/record.url?scp=77950558346&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=77950558346&partnerID=8YFLogxK
U2 - 10.1145/1230100.1230117
DO - 10.1145/1230100.1230117
M3 - Conference contribution
AN - SCOPUS:77950558346
SN - 9781595936288
T3 - Proceedings - I3D 2007, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games
SP - 97
EP - 104
BT - Proceedings - I3D 2007, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games
T2 - ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, I3D 2007
Y2 - 30 April 2007 through 2 May 2007
ER -