Best way to do volumetric waves (Sea of Thieves style) waves on mobile

Hi guys. I want to make volumetric waves (Sea of Thieves style) on mobile. I found two different ways to do it. First one is to use shaders and it’s working fine, but on mobile i’ve got pretty low fps. Second way is to make a script that will be updating plane mesh every frame using PrelinNoise to determine height, which works fine as well, and gain even more fps on mobile than the first way, but i’m not sure if this is the best solution. Can you tell me which of these ways is the best, or is there another?

If you can live with it memory-wise, another option is to precompute all frames of your ocean waves as separate meshes (meshes are fairly compact in memory) and then simply stream them into place in the MeshFilter so it “plays them back” at runtime, no heavy computation or calls to Perlin Noise or Mathf.Sin, etc.

2 Likes