Information

Abstract

Particle systems are widely used in real-time applications. This thesis presents and compares several state-of-the-art methods for rendering and simulating particle systems. In computer graphics, particle systems are used to represent fluids like water, gas-like substances like fire and smoke or effects like explosions and fireworks. In the case of water, each particle can be interpreted as one or more waterdrops. To simulate a firework, the particles can be seen as sparks, and for smoke or fire big particles can be used and blended over each other. In the context of this thesis all described techniques can be associated with either rendering or simulation. For rendering a single particle using the graphics processing unit (GPU), several methods exist. Probably the easiest would be to draw a texture onto a quad that is always looking towards the camera. This is called Billboarding and can be implemented very easily and efficiently. One drawback is that the hard edges of the drawn quad can become visible, when parts of the particle overlap with other objects in the scene. In this case the volumetric appearance of the particle can easily be destroyed. In order to avoid this, the transparency can be adapted near the region of overlap in such a way that the hard edges are smoothed out. This method is called Soft Particles and is used, because it increases the picture quality of the particle. The simulation, as the main topic of this work, can be interpreted as the approximation of a physical behavior, that can be achieved by manipulation of the data. Therefore it is about the changing, creation and deletion of particles. A raindrop-particle, as an example, is created in the sky in a cloud, then fall towards the ground, and at the ground the particle gets deleted. It is obvious that a system may contain a high number of particles in order to obtain the phenomenon to be approximated. In real-time applications, all particles should ideally be simulated at least 60 times per second, but this is not absolutely necessary in the type of simulation, that underlies this work. Therefore, an efficient method for simulation is very important. In this work three different basic methods for simulation are presented and compared. The two most important differences are the memory management and the way of computation of the simulation. While in one technique the particle data is stored in the main memory and the computation is done by the CPU, these two processes are outsourced to the GPU, when using one of the other methods. At the end of each simulation step the particles are checked against collision with other scene objects. In case of a collision the particle is reflected respectively. In order to represent transparent substances like smoke properly the particles have to be sorted and - starting with the farthest away - rendered. The easiest way would be to sort the particles according to their distance to the camera. When simulation is done on the CPU this can be easily achieved using classical sort algorithms, but when storing the particle data on the GPU other algorithms, like the Bitonic Merge Sort, have to be used.

Additional Files and Images

Additional images and videos

Additional files

thesis: Thesis (PDF) thesis: Thesis (PDF)

Weblinks

No further information available.

BibTeX

@bachelorsthesis{heinz-2019-psi,
  title =      "High-Quality Rendering of Interactive Particle Systems for
               Real-Time Applications",
  author =     "Alexander Heinz",
  year =       "2019",
  abstract =   "Particle systems are widely used in real-time applications.
               This thesis presents and compares several state-of-the-art
               methods for rendering and simulating particle systems. In
               computer graphics, particle systems are used to represent
               fluids like water, gas-like substances like fire and smoke
               or effects like explosions and fireworks. In the case of
               water, each particle can be interpreted as one or more
               waterdrops. To simulate a firework, the particles can be
               seen as sparks, and for smoke or fire big particles can be
               used and blended over each other. In the context of this
               thesis all described techniques can be associated with
               either rendering or simulation. For rendering a single
               particle using the graphics processing unit (GPU), several
               methods exist. Probably the easiest would be to draw a
               texture onto a quad that is always looking towards the
               camera. This is called Billboarding and can be implemented
               very easily and efficiently. One drawback is that the hard
               edges of the drawn quad can become visible, when parts of
               the particle overlap with other objects in the scene. In
               this case the volumetric appearance of the particle can
               easily be destroyed. In order to avoid this, the
               transparency can be adapted near the region of overlap in
               such a way that the hard edges are smoothed out. This method
               is called Soft Particles and is used, because it increases
               the picture quality of the particle. The simulation, as the
               main topic of this work, can be interpreted as the
               approximation of a physical behavior, that can be achieved
               by manipulation of the data. Therefore it is about the
               changing, creation and deletion of particles. A
               raindrop-particle, as an example, is created in the sky in a
               cloud, then fall towards the ground, and at the ground the
               particle gets deleted. It is obvious that a system may
               contain a high number of particles in order to obtain the
               phenomenon to be approximated. In real-time applications,
               all particles should ideally be simulated at least 60 times
               per second, but this is not absolutely necessary in the type
               of simulation, that underlies this work. Therefore, an
               efficient method for simulation is very important. In this
               work three different basic methods for simulation are
               presented and compared. The two most important differences
               are the memory management and the way of computation of the
               simulation. While in one technique the particle data is
               stored in the main memory and the computation is done by the
               CPU, these two processes are outsourced to the GPU, when
               using one of the other methods. At the end of each
               simulation step the particles are checked against collision
               with other scene objects. In case of a collision the
               particle is reflected respectively. In order to represent
               transparent substances like smoke properly the particles
               have to be sorted and - starting with the farthest away -
               rendered. The easiest way would be to sort the particles
               according to their distance to the camera. When simulation
               is done on the CPU this can be easily achieved using
               classical sort algorithms, but when storing the particle
               data on the GPU other algorithms, like the Bitonic Merge
               Sort, have to be used. ",
  month =      apr,
  address =    "Favoritenstrasse 9-11/E193-02, A-1040 Vienna, Austria",
  school =     "Research Unit of Computer Graphics, Institute of Visual
               Computing and Human-Centered Technology, Faculty of
               Informatics, TU Wien ",
  keywords =   "Particle System, Real-time Rendering, Particle Interaction",
  URL =        "https://www.cg.tuwien.ac.at/research/publications/2019/heinz-2019-psi/",
}