Shallow water equations in real-time computer graphics
Fluids are ubiquitous in our lives — from the air we breathe to the water we drink. Therefore, their simulation in interactive virtual worlds is not only of interest to the scientific community but the entertainment industry as well. In particular, the undertaken research looked at simulating water in real-time interactive applications (such as video games) using the shallow water equations. This set of equations arises from the more general Navier-Stokes equations by dimensional reduction to two dimensions. Such a simplification allows the simulation to achieve real-time performance at the cost of 3D fluid effects such as breaking waves. However, this is very much preferred over the commonly used method in real-time applications: direct simulations are often avoided and instead artist authored animations are used, which in turn greatly limit the interactions achievable with the fluids. Even if simulations are used, they are usually achieved using low order numerical methods resulting in the need for unphysical post-processing of the results. In order to avoid resorting to such ad-hoc solutions, a new numerical method based on higher order finite differences was developed. This new method was rigorously compared to two other numerical schemes: one from the computer graphics community and one from the scientific community. The resulting scheme was found to provide higher accuracy and stability than the latter method while producing significantly higher quality solutions than the first method. The utilization of modern GPUs for general purpose computation allowed the implementations to achieve faster than-real time performance on a variety of simulation sizes. In order to allow the fluid simulation to interact with the rest of the virtual environment, the undertaken research further investigated coupling of the GPU accelerated fluid simulation asynchronously with a traditional CPU based rigid body solver commonly found in video games. For this purpose, a new momentum-level coupling formulation was developed using impulsive forces which was shown to avoid the common fluid mass conservation issues of existing methods. Finally, a selection of visual effects were implemented to further enhance the realism of the developed simulations. A discrete version of the boundary sampling algorithm for high-frequency, small-scale fluid detail generation was investigated and parallelized for efficient execution on GPUs. In order to overcome the limitations of the shallow water model, further fluid effects involving efficient volumetric breaking wave simulation and rendering were explored. The efficient simulation of intricate light patterns, i.e. caustics, produced by light refracting through the fluid surface was also tackled. All of the developed novelties and improvements to existing methods were combined in a single showcase scene running at 60 frames per second on consumer hardware.
Networked Digital Library of Theses and Dissertations