Ok so I am getting back to this (see here https://forums.unrealengine.com/showthread.php?108052-Automatic-flow-map-material-for-water). I’m currently tidying up the material but the basic idea is this. I have a plane which has uv coords which I can sample V to get a direction vector for the main flow. I then do a ‘tangent’ operation between the input flow vector and the distance gradient (effectively its the normal to the surface or the direction to the nearest surface). This tangent is defined as cross( cross(A,B), B). You then subtract that vector (masked to RG to make it a 2d vector) from the texture uvs of the water. all it does is offset those uvs of the water texture based on that warp tangent.
Then the next step is that I’ve got a spline mesh river setup which I need to put this on and work on the actual water surface quality itself as this is just a placeholder to get the math right.