Issue No.05 - September/October (2010 vol.16)
pp: 718-728
Liang Hu , Hong Kong University of Science and Technology, Hong Kong
Pedro V. Sander , Hong Kong University of Science and Technology, Hong Kong
Hugues Hoppe , Microsoft Research, Redmond
We present a scheme for view-dependent level-of-detail control that is implemented entirely on programmable graphics hardware. Our scheme selectively refines and coarsens an arbitrary triangle mesh at the granularity of individual vertices to create meshes that are highly adapted to dynamic view parameters. Such fine-grain control has previously been demonstrated using sequential CPU algorithms. However, these algorithms involve pointer-based structures with intricate dependencies that cannot be handled efficiently within the restricted framework of GPU parallelism. We show that by introducing new data structures and dependency rules, one can realize fine-grain progressive mesh updates as a sequence of parallel streaming passes over the mesh elements. A major design challenge is that the GPU processes stream elements in isolation. The mesh update algorithm has time complexity proportional to the selectively refined mesh, and moreover, can be amortized across several frames. The result is a single standard index buffer that can be used directly for rendering. The static data structure is remarkably compact, requiring only 57 percent more memory than an indexed triangle list. We demonstrate real-time exploration of complex models with normals and textures, as well as shadowing and semitransparent surface rendering applications that make direct use of the resulting dynamic index buffer.
Level-of-detail, efficient rendering, multiple-GPU techniques.
Liang Hu, Pedro V. Sander, Hugues Hoppe, "Parallel View-Dependent Level-of-Detail Control", IEEE Transactions on Visualization & Computer Graphics, vol.16, no. 5, pp. 718-728, September/October 2010, doi:10.1109/TVCG.2009.101
[1] D. Luebke, B. Watson, J.D. Cohen, M. Reddy, and A. Varshney, Level of Detail for 3D Graphics. Elsevier Science, 2002.
[2] J.C. Xia and A. Varshney, "Dynamic View-Dependent Simplification for Polygonal Models," Proc. IEEE Conf. Visualization (VIS '96), pp. 327-334, 1996.
[3] H. Hoppe, "View-Dependent Refinement of Progressive Meshes," Proc. ACM SIGGRAPH '97, pp. 189-198, 1997.
[4] D. Luebke and C. Erikson, "View-Dependent Simplification of Arbitrary Polygonal Environments," Proc. ACM SIGGRAPH '97, pp. 199-208, 1997.
[5] P. Cignoni, F. Ganovelli, E. Gobbetti, F. Marton, F. Ponchio, and R. Scopigno, "Adaptive Tetrapuzzles: Efficient Out-of-Core Construction and Visualization of Gigantic Multiresolution Polygonal Models," ACM Trans. Graphics, vol. 23, no. 3, pp. 796-803, 2004.
[6] L. Borgeat, G. Godin, F. Blais, P. Massicotte, and C. Lahanier, "GoLD: Interactive Display of Huge Colored and Textured Models," ACM Trans. Graphics, vol. 24, no. 3, pp. 869-877, 2005.
[7] P.V. Sander and J.L. Mitchell, "Progressive Buffers: View-Dependent Geometry and Texture for LOD Rendering," Proc. Third Eurographics Symp. Geometry Processing (SGP '05), pp. 129-138, 2005.
[8] P. Lindstrom, D. Koller, W. Ribarsky, L.F. Hodges, N. Faust, and G.A. Turner, "Real-Time, Continuous Level of Detail Rendering of Height Fields," Proc. ACM SIGGRAPH '96, pp. 109-118, 1996.
[9] M. Duchaineau, M. Wolinsky, D.E. Sigeti, M.C. Miller, C. Aldrich, and M.B. Mineev-Weinstein, "ROAMing Terrain: Real-Time Optimally Adapting Meshes," Proc. IEEE Conf. Visualization (VIS '97), pp. 81-88, 1997.
[10] P. Lindstrom and V. Pascucci, "Terrain Simplification Simplified: A General Framework for View-Dependent Out-of-Core Visualization," IEEE Trans. Visualization and Computer Graphics, vol. 8, no. 3, pp. 239-254, July-Sept. 2002.
[11] J. Levenberg, "Fast View-Dependent Level-of-Detail Rendering Using Cached Geometry," Proc. IEEE Conf. Visualization (VIS '02), pp. 259-266, 2002.
[12] P. Cignoni, F. Ganovelli, E. Gobbetti, F. Marton, F. Ponchio, and R. Scopigno, "BDAM: Batched Dynamic Adaptive Meshes for High Performance Terrain Visualization," Computer Graphics Forum, vol. 22, no. 3, pp. 505-514, 2003.
[13] F. Losasso and H. Hoppe, "Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids," ACM Trans. Graphics, vol. 23, no. 3, pp. 769-776, 2004.
[14] V. Pascucci, "Isosurface Computation Made Simple: Hardware Acceleration, Adaptive Refinement and Tetrahedral Stripping," Proc. Joint Eurographics—IEEE Trans. Visualization and Computer Graphics (TVCG) Symp. Visualization (VisSym '04), pp. 293-300, 2004.
[15] L. Buatois, G. Caumon, and B. Lévy, "GPU Accelerated Isosurface Extraction on Tetrahedral Grids," Proc. Int'l Symp. Visual Computing, pp. 383-392, 2006.
[16] M. Guthe, A. Balázs, and R. Klein, "GPU-Based Trimming and Tessellation of NURBS and T-Spline Surfaces," ACM Trans. Graphics, vol. 24, no. 3, pp. 1016-1023, 2005.
[17] A. Patney and J.D. Owens, "Real-Time Reyes-Style Adaptive Surface Subdivision," ACM Trans. Graphics, vol. 27, no. 5, pp. 143:1-143:8, 2008.
[18] C. Eisenacher, Q. Meyer, and C. Loop, "Real-Time View-Dependent Rendering of Parametric Surfaces," Proc. 2009 Symp. Interactive 3D Graphics and Games (I3D '09), pp. 137-143, 2009.
[19] M. Schwarz and M. Stamminger, "Fast GPU-Based Adaptive Tessellation with CUDA," Computer Graphics Forum, vol. 28, no. 2, pp. 365-374, 2009.
[20] L.-J. Shiue, I. Jones, and J. Peters, "A Realtime GPU Subdivision Kernel," ACM Trans. Graphics, vol. 24, no. 3, pp. 1010-1015, 2005.
[21] A. Patney, M.S. Ebeida, and J.D. Owens, "Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces," Proc. Conf. High Performance Graphics 2009, pp. 99-108, 2009.
[22] T. Boubekeur and C. Schlick, "Generic Mesh Refinement on GPU," Proc. ACM SIGGRAPH/Eurographics Conf. Graphics Hardware (HWWS '05), pp. 99-104, 2005.
[23] M. Bokeloh and M. Wand, "Hardware Accelerated Multi-Resolution Geometry Synthesis," Proc. 2006 Symp. Interactive 3D Graphics and Games (I3D '06), pp. 191-198, 2006.
[24] C. DeCoro and N. Tatarchuk, "Real-Time Mesh Simplification Using the GPU," Proc. 2007 Symp. Interactive 3D Graphics and Games (I3D '07), pp. 161-166, 2007.
[25] J. Ji, E. Wu, S. Li, and X. Liu, "View-Dependent Refinement of Multiresolution Meshes Using Programmable Graphics Hardware," The Visual Computer, vol. 22, no. 6, pp. 424-433, 2006.
[26] L. Hu, P.V. Sander, and H. Hoppe, "Parallel View-Dependent Refinement of Progressive Meshes," Proc. 2009 Symp. Interactive 3D Graphics and Games (I3D '09), pp. 169-176, 2009.
[27] L. Kobbelt, S. Campagna, and H.-P. Seidel, "A General Framework for Mesh Decimation," Proc. Graphics Interface Conf., pp. 43-50, 1998.
[28] J. El-Sana and A. Varshney, "Generalized View-Dependent Simplification," Computer Graphics Forum, vol. 18, no. 3, pp. 83-94, 1999.
[29] H. Hoppe, "Smooth View-Dependent Level-of-Detail Control and Its Application to Terrain Rendering," Proc. IEEE Conf. Visualization (VIS '98), pp. 35-42, 1998.
[30] L.D. Floriani, P. Magillo, and E. Puppo, "Efficient Implementation of Multi-Triangulations," Proc. IEEE Conf. Visualization (VIS '98), pp. 43-50, 1998.
[31] R. Pajarola and C. DeCoro, "Efficient Implementation of Real-Time View-Dependent Multiresolution Meshing," IEEE Trans. Visualization and Computer Graphics, vol. 10, no. 3, pp. 353-368, May/June 2004.
[32] H. Hoppe, "Progressive Meshes," Proc. ACM SIGGRAPH '96, pp. 99-108, 1996.
[33] L. Williams, "Casting Curved Shadows on Curved Surfaces," Proc. ACM SIGGRAPH '78, pp. 270-274, 1978.
[34] A. Mammen, "Transparency and Antialiasing Algorithms Implemented with the Virtual Pixel Maps Technique," IEEE Computer Graphics and Application, vol. 9, no. 4, pp. 43-55, July 1989.
[35] C. Everitt, "Interactive Order Independent Transparency," technical report, NVIDIA Corporation, 2001.
[36] L. Bavoil, S.P. Callahan, A. Lefohn, J.L.D. Comba, and C.T. Silva, "Multi-Fragment Effects on the GPU Using the K-Buffer," Proc. 2007 Symp. Interactive 3D Graphics and Games (I3D '07), pp. 97-104, 2007.
[37] M. Harris, S. Sengupta, and J.D. Owens, "Parallel Prefix Sum (Scan) with CUDA," GPU Gems 3, H. Nguyen, ed., Addison Wesley Professional, Aug. 2007.