skip to main content
10.1145/1572769.1572779acmconferencesArticle/Chapter ViewAbstractPublication PageshpgConference Proceedingsconference-collections
research-article

Efficient depth peeling via bucket sort

Published:01 August 2009Publication History

ABSTRACT

In this paper we present an efficient algorithm for multi-layer depth peeling via bucket sort of fragments on GPU, which makes it possible to capture up to 32 layers simultaneously with correct depth ordering in a single geometry pass. We exploit multiple render targets (MRT) as storage and construct a bucket array of size 32 per pixel. Each bucket is capable of holding only one fragment, and can be concurrently updated using the MAX/MIN blending operation. During the rasterization, the depth range of each pixel location is divided into consecutive subintervals uniformly, and a linear bucket sort is performed so that fragments within each subintervals will be routed into the corresponding buckets. In a following fullscreen shader pass, the bucket array can be sequentially accessed to get the sorted fragments for further applications. Collisions will happen when more than one fragment is routed to the same bucket, which can be alleviated by multi-pass approach. We also develop a two-pass approach to further reduce the collisions, namely adaptive bucket depth peeling. In the first geometry pass, the depth range is redivided into non-uniform subintervals according to the depth distribution to make sure that there is only one fragment within each subinterval. In the following bucket sorting pass, there will be only one fragment routed into each bucket and collisions will be substantially reduced. Our algorithm shows up to 32 times speedup to the classical depth peeling especially for large scenes with high depth complexity, and the experimental results are visually faithful to the ground truth. Also it has no requirement of pre-sorting geometries or post-sorting fragments, and is free of read-modify-write (RMW) hazards.

References

  1. Bavoil, L., and Myers, K. 2008. Order independent transparency with dual depth peeling. Tech. rep., NVIDIA Corporation.Google ScholarGoogle Scholar
  2. Bavoil, L., Callahan, S. P., Lefohn, A., ao L. D. Comba, J., and Silva, C. T. 2007. Multi-fragment effects on the gpu using the k-buffer. In Proceedings of the 2007 symposium on Interactive 3D graphics and games, 97--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Carpenter, L. 1984. The a-buffer, an antialiased hidden surface method. In Proceedings of the 11th annual conference on Computer graphics and interactive techniques, 103--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Carr, N., Mech, R., and Miller, G. 2008. Coherent layer peeling for transparent high-depth-complexity scenes. In Proceedings of the 23rd ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hardware, 33--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Catmull, E. E. 1974. A Subdivision Algorithm for Computer Display of Curved Surfaces. PhD thesis, University of Utah. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Eisemann, E., and Décoret, X. 2006. Fast scene voxelization and applications. In SIGGRAPH 2006 Sketches. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Everitt, C. 2001. Interactive order-independent transparency. Tech. rep., NVIDIA Corporation.Google ScholarGoogle Scholar
  8. Govindaraju, N. K., Henson, M., Lin, M. C., and Manocha, D. 2005. Interactive visibility ordering and transparency computations among geometric primitives in complex environments. In Proceedings of the 2005 symposium on Interactive 3D graphics and games, 49--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Houston, M., Preetham, A., and Segal, M. 2005. A hardware f-buffer implementation. Tech. rep., Stanford University.Google ScholarGoogle Scholar
  10. Jouppi, N. P., and Chang, C.-F. 1999. z 3: an economical hardware technique for high-quality antialiasing and transparency. 85--93.Google ScholarGoogle Scholar
  11. Liu, B.-Q., Wei, L.-Y., and Xu, Y.-Q. 2006. Multi-layer depth peeling via fragment sort. Tech. rep., Microsoft Research Asia.Google ScholarGoogle Scholar
  12. Mammen, A. 1989. Transparency and antialiasing algorithms implemented with the virtual pixel maps technique. IEEE Computer Graphics and Applications 9, 4, 43--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Mark, W. R., and Proudfoot, K. 2001. The f-buffer: a rasterization-order fifo buffer for multi-pass rendering. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware, 57--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Myers, K., and Bavoil, L. 2007. Stencil routed a-buffer. ACM SIGGRAPH 2007 Technical Sketch Program. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. NVIDIA. 2005. Gpu programming exposed: the naked truth behind nvidia's demos. Tech. rep., NVIDIA Corporation.Google ScholarGoogle Scholar
  16. Wexler, D., Gritz, L., Enderton, E., and Rice, J. 2005. Gpu-accelerated high-quality hidden surface removal. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, 7--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Wittenbrink, C. M. 2001. R-buffer: a pointerless a-buffer hardware architecture. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware, 73--80. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Efficient depth peeling via bucket sort

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader