110 likes | 254 Views
Ocean Simulation. Nan Wang, Taibai Xu , Kuai Yu, Xiaofei Zhang. Introduction. CG water has been widely used in all levels of computer graphics, including movies, games, etc.
E N D
Ocean Simulation Nan Wang, TaibaiXu, Kuai Yu, Xiaofei Zhang
Introduction • CG water has been widely used in all levels of computer graphics, including movies, games, etc. • There are different approaches for simulating ocean surface: Navier-Stokes equation based methods, procedure noise based method (Perlin noise), and statistic model based method. • The method we used in our project is FFT based statistic model.
Gerstner Waves • In the Gerstner wave model, complex wave can be generated by summing a set of sine waves.
Gerstner Waves (Cont.) • Gerstner Waves are rather limited because they are generally simple sum of sine waves horizontally and vertically. • An obvious drawback of this method is that the surface of ocean seems too periodic and uniform, thus the result of Gerstner Waves is not quite realistic. • Introducing in statistic model would help to avoid this drawback and generate more realistic waves.
Statistical Wave Model • In the project, we used the statistical wave model proposed by Jerry Tessendorf to generate the height field. • In his model, wave height is a function of horizontal position and time
Statistical Wave Model (Cont.) • The above equation can be re-written in the following way: • With we could get a quite realistic ocean surface.
Statistical Wave Models (Cont.) • The Phillips spectrum is a statistical model for wind-driven waves proposed by ocean graphic researchers.
FFT Acceleration • The complexity of evaluation of exponential term can be reduced by applying FFT algorithm. • Using the observation that (1) DFT equation can be considered as a set of point-wise values retrieved by a polynomial where complex n-th roots of unity were evaluated. (2) The computation of exponential terms can be accelerated using the flowing equation • Where w[N, n] denotes the n-th power of w(w = e2πi/N). • Up to this point we can use divide and conquer to achieve O(nlogn) time complexity.
More on our project • We have made our program open source. The source code of our project is now available at • https://oceansimulation.googlecode.com/svn/trunk/ • Please check out our video at • http://youtu.be/3v43Ucee0XA