Large-Scale Interacting Particle System Simulation Using OpenGL

To simulate large-scale interacting particle system has been a problem, which involves a lot of complicated calculations and is difficult to achieve real-time. This paper explored the possibility of parallelizing the simulation of these large-scale partic

  • PDF / 389,043 Bytes
  • 7 Pages / 439.37 x 666.142 pts Page_size
  • 96 Downloads / 234 Views

DOWNLOAD

REPORT


Large-Scale Interacting Particle System Simulation Using OpenGL Fangjie Tao, Fuyan Liu and Gang Liu

Abstract To simulate large-scale interacting particle system has been a problem, which involves a lot of complicated calculations and is difficult to achieve realtime. This paper explored the possibility of parallelizing the simulation of these large-scale particle systems and offloading them to very-parallel hardware which is usually only used for rendering the video card. We use Open Computing Language (OpenCL) for parallel update of the status of every particle and apply forces onto every particle in particle system. We propose well-conceived ideas of using OpenCL achieve particle system in parallel, which greatly improved the speed of the particle system. Using GPU implement, the n-body system achieves a tenfold increase in speed than using CPU. The speed is so fast that it can achieve real-time rendering of large-scale particle system in games or scientific research. Keywords Particle system

 OpenCL  Interacting  Parallel

F. Tao (&)  F. Liu  G. Liu School of Computer Engineering and Science, Shanghai University, Shanghai 200072, China e-mail: [email protected] F. Liu e-mail: [email protected] G. Liu e-mail: [email protected]

Z. Zhong (ed.), Proceedings of the International Conference on Information Engineering and Applications (IEA) 2012, Lecture Notes in Electrical Engineering 218, DOI: 10.1007/978-1-4471-4847-0_97, Ó Springer-Verlag London 2013

789

790

F. Tao et al.

97.1 Introduction It is quite common to use General purpose computing on graphics processing unit (GPGPU) in the field of scientific research and large-scale games. GPU programming is used in scientific research when doing heavy calculations on molecular structures and protein folding etc. In large-scale games, GPU programming is used to do simulation calculations like game physics or particle systems. The reason for using GPU for such a large-scale calculation is GPU’s highly parallel computing can make the program to obtain very high acceleration. Modern GPUs have a lot of small processing units, known as stream processing unit (SPU), such as the ATI Radeon 5000 series graphics cards, there are more than 700 SPU’s. The advantage of the inherent parallel architecture makes GPU computing the often used one in data-intensive tasks, such as games, 3D modelling software, and even scientific applications [1]. The running of these tasks must be highly parallel structure to adapt to the architecture of today’s graphics cards. The particle system is such a task you can achieve on GPU to simulate millions of particles. Such a large-scale particle system is often used to achieve visual effects like fire, smoke, hair, cloth, and liquid (Fig. 97.1).

97.2 Related Researches A long period of time after the release of OpenGL and Direct3D, you can only use the fixed pipeline to draw 3D graphics, so the operations you can do on graphics is very limited. Until the release of OpenGL 2.0, only a few programmable stages can use GLSL (OpenGL shading la