@XvaneD, how I would approach that is to stack quads. One colored for the surface of the water behind another for the side of the water. The back quad just needs a simple unlit gradient. The one in front needs a slightly more complex shader which will handle the color of the water, the line at intersection between the side and top, and the wave animation. It will look like this:
This is just the preview window from NME, but you can see the shader in action here.
There are several exposed controls so you can dial everything in.
You can control wave speed, wave frequency, wave amplitude, water height, edge thickness, and edge transition (the anti-alias on the edge stroke) to dial it all in to look right in your scene.
There is one thing to note. I have a
OneMinusBlock right after splitting the
mesh.uv on the Y component. This is because the preview models in NME are glTF models which use an OpenGL format for UV space. Babylon uses DirectX format for UV space by default so if you create your planes with Babylon.js primitives, you will want to remove the
For the little crests of the waves on top, I would use a particle system with an emitter the size of your water that emits particles parallel with the emitter surface in one direction. The particle texture should be just the small caret shape, though you could make a simple sprite sheet of several if you want some variation. Then scale the wave up and down again vertically, maybe ramping opacity as well and you should get the sense of these wave peaks rolling on the water.
Hope this helps get you going in a direction, but please feel free to ping me if you have more questions.