Unreal Engine 2D Water Physics
Water Physics simulation that uses Render Targets to store the ripple height values that are generated from object displacement within the volume. After this, a custom water material uses this heightmap to displace the mesh on the Z axis, creating this ripple effect.
In order to preserve wave quality, it was required to use a high-density mesh surface, as well as a separated UV map that only affects the top surface of the volume. There still lies room for improvement since using multiple of these assets can rapidly cap the polygon count in one scene.
There is room for improvement though. Using a tesselation shader that only subdivides this mesh when the camera is within a distance treshhold could be beneficial, increasing performance without compromising visual fidelity.
Unreal Engine reference here