Both issues are on my list of things that I’m planning to improve.
To remove the first issue, the repeating of the foam texture, I will try to implement the solution that is proposed here.
But generally, the foam texture and the material parameters need to be optimized depending on the expected distance the player will have to the water in the game. It is difficult to make a water surface that looks good at a distance of 1 km and also at 10 cm. So, depending on your game you may want to adjust or replace the foam texture. But I think that with the procedural noise modulation, the repeating pattern effect will disappear.
Or, you could reduce the value of the FoamIntensity parameter with increasing height of the camera above the water, fading out the foam texture before the pattern becomes noticeable. The height of the camera above the water is already calculated in the WaterPlane Blueprint.
The shimmering in the distance I think is caused by the high resolution normal map that is moving very far away. The solution could be to reduce the strength of the normal map (parameter DetailNormalStrength) depending of the distance of the pixel to the camera.
Using the noise nodes comes with very (very) strong performance hits (look at material instruction count). At least this happened in our project. Runtime friendlier is to create a heightmap-blend node cascade of 4 or 5 different foam textures using different static noise textures. After such a cascade, tiling is only visible anymore at really large distances.
I’ve fixed the foam texture, now it doesn’t repeat any more. This will be included in the next update of Physical Water Surface.
Of course, there is a material parameter that influences how much foam is visible, and the foam can also be faded out completely at a certain distance.