phoohow / vkOceanWaves

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vkOceanWaves

Description

Vulkan implementation of ocean waves in both DFT and FFT

It is now basically a well organized version of Discrete Fourier Transformation Ocean Wave. The base project (base.lib) from the SaschaWillems examples codebase was used as a framework to provide a wrapper of Vulkan APIs.

You can use mouse and wheel to navigate. For now I do not set any cull mode.

Performance

It is very slowly due to the algorithm - Discrete Fourier Transform (DFT). In the latest version I update it to the Fast Fourier Transform algorithm (FFT).

Mode FPS Device
Debug 120+ GPU(RTX 3050Ti Laptop) / CPU(Intel i7-11800H)
Release 300~ GPU(RTX 3050Ti Laptop) / CPU(Intel i7-11800H)
Debug 120+ GPU(RTX 3070 Laptop) / CPU(AMD R7 5800H)
Release 680~950 GPU(RTX 3070 Laptop) / CPU(AMD R7 5800H)

Notice

You can select your GPU in the line 870 in .\base01\vulkanexamplebase.cpp.

869     ...
870     uint32_t selectedDevice  = 0;
871     ...

The variable selectedDevice is 1 for default. You can change it to 0 in case:

  • You want to switch to another GPU
  • You only have only one GPU and the program crashes at the GPU selection.

wave        (The GPU will show on the window title and the control panel as well.)

About


Languages

Language:C++ 98.9%Language:GLSL 0.9%Language:C 0.2%Language:Batchfile 0.1%Language:Roff 0.0%