A comparative performance analysis of Fast Fourier Transformation and Gerstner waves

Detta är en Kandidat-uppsats från Blekinge Tekniska Högskola/Institutionen för datavetenskap

Sammanfattning: Background:  As time moves on hardware is able to tackle heavier and more complex computations in real-time systems. This means that more realistic and stylistic environments can be computed. One of these environments is the ocean. To simulate ocean water in real-time, procedural methods such Gerstner waves and Fast Fourier Transformation (FFT) have been developed.    Objectives: The primary objective of this thesis is to compare two procedural methods that are designed to simulate realistic ocean water waves. Meanwhile, the goal of this thesis is for developers to gain an insight into these two methods used in order to simulate realistic ocean water waves. Additionally, it will also discuss advantages as well as disadvantages with both, which gives developers a thorough understanding of the most appropriate method for implementation.  Methods: FFT and Gerstner waves will be implemented in order to perform comparisons of resources, computation time and Video Random Access Memory (VRAM). The procedural methods will be calculated on the GPU and measured using DirectX 11 query interface. Lastly, the final step is to gather data from the CPU side, and store the metrics for time it took to render a frame and scalability of the displacement maps. \noindent\textbf{Results}.The profiling and experiments showed that FFT is more computationally intensive and requires more VRAM. For scalability, FFT also scales worse in terms of both computation time and VRAM usage. Conclusions: From the results we can conclude that FFT is more computationally heavy and requires more VRAM usage than Gerstner waves. In none of the tests did the computation time of Gerstner waves take longer than FFT. Depending on grid resolution, FFT took 4-16 times longer to compute than Gerstner. Even though Gerstner waves takes less time to compute, for smaller grids, less than 512x512, the difference is less than 0.2ms.

  HÄR KAN DU HÄMTA UPPSATSEN I FULLTEXT. (följ länken till nästa sida)