Abstract
Particle systems are important building block for simulating vivid and detail-rich effects in virtual world. One of the most difficult aspects of particle systems has been detecting collisions between particles and mesh surface. Due to the huge computation, a variety of proxy-based approaches have been proposed recently to perform visually correct simulation. However, all either limit the complexity of the scene, fail to guarantee non-penetration, or are too slow for real-time use with many particles. In this paper, we propose a new octree-based proxy for colliding particles with meshes on the GPU. Our approach works by subdividing the scene mesh with an octree in which each leaf node associates with a representative normal corresponding to the normals of the triangles that intersect the node. We present a view-visible method, which is suitable for both closed and non-closed models, to label the empty leaf nodes adjacent to nonempty ones with appropriate back/front property, allowing particles to collide with both sides of the scene mesh. We show how collisions can be performed robustly on this proxy structure in place of the original mesh, and describe an extension that allows for fast traversal of the octree structure on the GPU. The experiments show that the proposed method is fast enough for real-time performance with millions of particles interacting with complex scenes.
Similar content being viewed by others
References
Reeves W T. Particle systems—a technique for modeling a class of fuzzy objects. ACM Trans Graphic, 1983, 2: 91–108
Witkin A, Baraff D. Physically based modeling: principles and practice. In: Proceedings of SIGGRAPH’97 Course notes. 1997
Kolb A, Latta L, Rezk-Salama C. Hardware-based simulation and collision detection for large particle systems. In: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware. 2004. 123–131
Drone S. Real-time particle systems on the GPU in dynamic environments. In: Proceedings of ACM SIGGRAPH 2007 Courses. San Diego, 2007. 80–96
Sims K. Particle animation and rendering using data parallel computation. In: Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques. Dallas, 1990. 405–413
Owens J D, Luebke D, Govindaraju N, et al. A survey of general-purpose computation on graphics hardware. Comput Graph Forum, 2007, 26: 80–113
Latta L. Building a million particle system. Lecture at the GDC, 2004
Kipfer P, Segal M, Westermann R. UberFlow: a GPU-based particle engine. In: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware. 2004. 115–122
Venetillo J S, Celes W. GPU-based particle simulation with inter-collisions. Visual Comput, 2007, 23: 851–860
Glasner A S. Space subdivision for fast ray tracing. IEEE Comput Graph, 1984, 4: 15–22
MacDonald D J, Booth K S. Heuristics for ray tracing using space subdivision. Visual Comput, 1990, 6: 153–166
Samet H. Applications of Spatial Data Structures: Computer Graphics, Image Processing, and GIS. Addison-Wesley, 1990
Scherson I D, Caspary E. Data structures and the time complexity of ray tracing. Visual Comput, 1987, 3: 201–213
Benson D, Davis J. Octree textures. ACM Trans Graphic, 2002, 21: 785–790
DeBry D, Gibbs J, Petty D D, et al. Painting and rendering textures on unparameterized models. ACM Trans Graphic, 2002, 21: 763–768
Hormann K, Polthier K, Sheffer A. Mesh parameterization: theory and practice. In: Proceedings of ACM SIGGRAPH ASIA 2008 Courses. Singapore, 2008. 1–87
Lefebvre S, Dachsbacher C. TileTrees. In: Proceedings of the 2007 symposium on Interactive 3D Graphics and Games. Seattle, 2007. 25–31
Lefebvre S, Hornus S, Neyret F. GPU Gems 2: Octree Textures on the GPU. Addison-Wesley, 2005
Castro R, Lewiner T, Lopes H, et al. Statistical optimization of octree searches. Comput Graph Forum, 2008, 27: 1557–1566
Warren M S, Salmon J K. A parallel hashed octree N-Body algorithm. In: Proceedings of the 1993 ACM/IEEE Conference on Supercomputing. Portland, 1993. 12–21
Bloomenthal J. Polygonization of implicit surfaces. Comput Aided Geom D, 1988, 5: 341–355
Cohen-Steiner D, Alliez P, Desbrun M. Variational shape approximation. ACM Trans Graph, 2004, 23: 905–914
Haines E. Point in polygon strategies. Graphics Gems IV, 1994: 24–46
Lacoste J, Boubekeur T, Jobard B, et al. Appearance preserving octree-textures. In: Proceedings of the 5th International Conference on Computer Graphics and Interactive Techniques in Australia and Southeast Asia, 2007. 87–93
NVIDIA. NVIDIA CUDA Programming Guide 1.1. 2007
Green S. Particle Simulation using CUDA. NVIDIA Whitepaper, 2010
Zhou K, Gong M M, Huang X, et al. Data-parallel octrees for surface reconstruction. IEEE Trans Vis Comput Gr, 2011, 17: 669–681
Deng H, Zhang L Q, Mao X C, et al. Fast and dynamic generation of linear octrees for geological bodies under hardware acceleration. Sci China Earth Sci, 2010, 53: 113–119
Yang Z W, Seo Y H, Kim T W. Adaptive triangular-mesh reconstruction by mean-curvature-based refinement from point clouds using a moving parabolic approximation. Comput Aid Des, 2010, 42: 2–17
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Fan, W., Wang, B., Paul, JC. et al. An octree-based proxy for collision detection in large-scale particle systems. Sci. China Inf. Sci. 56, 1–10 (2013). https://doi.org/10.1007/s11432-012-4616-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11432-012-4616-5