I’d like to highlight an important aspect of the current Unreal Engine water system that has a significant impact on visual comfort and realism, especially in VR games: light refraction should not deform the scene equally in shallow and deep water.
In shallow water, the bottom should be minimally distorted, while in deeper water, the distortion naturally increases. Similarly, shallow water can be perfectly clear, but as depth increases, sharpness, contrast, detail, and visibility gradually decrease. The brain is very sensitive to this — in VR, this is even more critical, because a mismatch between expectation and visual input can cause discomfort or motion sickness.
All the necessary data for such a shader already exists in Unreal Engine: pixel distance to the bottom, distance to the surface, and camera position. Adding a few parameters to the shader could allow depth-based control of distortion, detail, visibility, sharpness, and contrast. The result would be visually more appealing, easier on the eyes, and safer for VR, while performance cost would be minimal and the benefit maximal.
It would be fantastic if Unreal Engine considered implementing this simple yet highly effective change. It could significantly improve the realism and comfort of water in games — particularly VR — and inspire other developers to adopt this approach as well.