If performance is your goal, you could make a simple but fast water material using SpatialMaterial:
- Create a MeshInstance with a new PlaneMesh.
- Create a new SpatialMaterial in the MeshInstance's material override.
- Set Albedo to a dark, translucent color.
- Set Roughness to 0 and metallic to 1.
- Use a normal map texture that represents some waves.
- Optionally, you can enable refraction to distort what's below the water.
- Optionally, you can enable Proximity Fade to make water edges fade in smoothly. This is only supported when using the GLES3 renderer.
- Create an AnimationPlayer node and use it to animate the SpatialMaterial's Uv1 offset property. This will make the texture scroll over time.
To make waving water, you'll need to write a vertex shader though.