Real-Time Water Simulation Using Fast Fourier Transforms Implemented on a Graphics Processing Unit, 07-9433Printer Friendly Version
Inclusive Dates: 10/01/03 - 10/01/04
Background - The Central Processing Unit (CPU) is the performance bottleneck for many visual training simulations. The performance of the Graphics Processing Unit (GPU) has been growing at a faster pace than the performance of the CPU; hence, the GPU is often under utilized. The performance of simulations could be greatly improved by exploring techniques for moving processing from the CPU to the GPU using the programmable graphics pipeline available on commodity three-dimensional graphics cards.
Approach - During this effort, the capabilities of the GPU to perform computationally intensive simulations in real-time were investigated. The capability of the GPU to increase the efficiency of the Fast Fourier Transform (FFT), a numerical transform used widely in various fields of engineering, was researched by implementing an FFT that runs solely on a GPU. This GPU-based FFT technique was then applied to the real-time simulation of water to determine the extent to which the GPU can produce visual and non-visual effects missing in current visual training simulations.
Accomplishments - An algorithm was developed to compute an FFT on the GPU. The performance benefits of offloading the processing to the GPU were demonstrated by using the FFT to create the height field of a water surface and compute surface normal vectors for a real-time water simulation. A simulation of the wake created by a boat moving through the water surface was created. The filtering of the data produced by the wake simulation was offloaded to the GPU. GPU programs were also written to improve the visual appearance of the surface of the water using reflection, refraction, bump mapping, and per-pixel lighting techniques. A high quality water simulation was created and integrated into the SwRI-Owned Graphics Interface Library (GraIL). SwRI is well positioned to continue to exploit the benefits of offloading processing to the GPU and take advantage of further performance improvements available with next-generation GPUs.