Physical Ocean Surface - Developing a Realistic Water Shader

My GPU: AMD Radeon HD 6870
My CPU: Core i5-2500

Just to be clear, the water material of course runs completely on the GPU (incl. summing up of the Gerstner waves and the displacement calculation).

The the scene from my last video with the 2 floating boxes runs fullscreen at 37 FPS, (Frame 27.34 ms, Game 27.24 ms, Draw 1.35 ms, GPU 27.34 ms). So the reason for the low FPS is clearly the buoyancy calculation on the CPU. As I’ve written above, there is a lot of potential to speed this up, for example implementing it in C++ instead of Blueprint.

If there are no floating objects, only the GPU performance is relevant. When I remove the two boxes from the video, the scene runs fullscreen at 71 FPS (Frame 14.1 ms, Game 1.65 ms, Draw 1.49 ms, GPU 14.1 ms). So in this case the GPU is the limiting factor.

I plan to include versions of the material with a reduced number of Gerstner waves, so that you can get better performance if you need to.

I have not tried line traces. However, there is a blueprint function that will tell you the wave height at any location and time, so you can just use that.