Information
- Publication Type: Bachelor Thesis
- Workgroup(s)/Project(s):
- Date: April 2019
- Date (Start): December 2017
- Date (End): April 2019
- Matrikelnummer: 1426648
- First Supervisor:
- Keywords: Particle System, Real-time Rendering, Particle Interaction
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
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/",
}