dc.description.abstract | Fluid simulation for computer graphics is a special part of Computational Fluid Dynamics
(CFD) which is used in graphics applications to generate realistic representations of different
types of fluids such as water, smoke etc. The main difference between applications in
computer graphics and more general CFD applications is that the results do not need to be
physically correct as long as they seem convincing and visually appealing to the human
observer. Computer graphics applications range from real-time simulations that are
integrated in computer games and completely off-line ultra realistic simulations that are
mostly used in special effects in the movie industry.
In this Master's Thesis we will focus on the Computer Graphics applications of fluid simulation
used in the movie industry. We develop a three dimensional fluid simulator, which uses a
staggered grid and follows the Eulerian viewpoint together with a semi-Lagrangian advection
technique. MICCG(0) (modified incomplete Cholesky conjugate gradient, level zero) is used
for the pressure projection. Different methods to track the fluid are implemented, including
marker particles, level set method and particle level set method. The interaction between
solids and fluid is possible under a fluid-solid coupling technique. The scenes are rendered
using pbrt and Robert Bridson's grid-based implicit surface shape plugin for pbrt.
Each frame of a simulation that follows the Eulerian viewpoint usually takes several seconds
to be computed. As result of this, we focused our efforts into researching what parts delay
the simulation the most. Once these parts are identified we propose some methods to deal
with these bottlenecks and speed up the simulation. For this purpose, we propose a new
hybrid-grid structure, instead of the standard regular grid usually used in this type of
simulations, in order to decrease the number of computations needed. Furthermore, we add
multi-threading at some time consuming parts of the simulation to further optimize
performance. Finally, we combine the two above methods to acquire the highest performance
increase featured among our contributions. | |