som1990 / eWave

7 stars 2 forks source link

CPU prototype of eWave and Surface Wavelet algorithm. UE4 GPU Implementation description found below

Purpose : To compare a slightly older but modified algorithm with latest Siggraph paper(2018) solution to wave interaction. The goal is to do an analytical analysis of these two methods to come up with a faster and more accurate wave simulation as compared to what's currently been using in game production.

Latest Video (Dec 2019)

Latest Teaser found here.

Requirements


You would need

1) eWave Algorithm


Motivation: To implement and develop a faster and more accurate method for player water wave interaction which can be utilized in production in game companies.


Problem: Current game methodologies utilize shallow water equations to simulate player water wave interaction. The issue with this approach is that shallow water equations do not take into consideration dispersion in the wave equation. Traditional shallow water equations are also resolution bound hence simulation quality is dependent on the resolution of the grid.


Note: What is dispersion?


Dispersion in layman terms refers to waves of different frequencies traveling at the different speeds. Shallow water equations do not account for dispersion so waves of all frequencies travel at the same speed. In the image below we see various frequencies of ocean waves dispersing out at different speeds.


Goals :-


I will be using as much code provided by the Surface Wavelet algorithm to compare with my enhanced eWave algorithm to stay true to the original author's vision. I will not be comparing channel flow or other methods utilized by the Surface wavelets.


MileStone :


Existing Solutions : There are several solutions to the problem of having more accurate wave interaction which leads but each have their drawbacks.


Proposed Solution :