Water Material. How long will all that bad? And what to do?

I already requested better water rendering. Epic knows it’s a real problem. Ideally, people will have access to the Reflection environment in the material itself to allow for an easy placement of a realtime reflection. Unfortunately, nobody ever has access to the shadow, indirect lighting, or reflection environments, it’s all baked in by lightmass. You only have simple controls over it. There was a fluid surface actor being developed on the forums, which would help with wave displacement, but the project seemed to have been dropped. The community ocean shader is the best thing going.

Some people have implemented their own realtime reflections, but as far as everyone is concerned, it’s very expensive to render. Forget Half Life 2, there were realtime reflections in Super Mario Sunshine back in 2001 on the Gamecube! But that was at a screen resolution of 640x480, in 30 frames per second, and everything else was extremely simple: the water wasn’t even lit, and nothing had specular highlights. So of course they can get away with a realtime reflection! But doing that now would require an immense amount of power that few people possess. I have a GTX 960 (EVGA FTW), typical for a gamer nowadays, and I struggle getting stuff to run smoothly at 720p. And it’s not from the post process overhead because I zeroed it out! It’s just very difficult to make realtime reflections work. And this is coming from a guy who loved making water for fun in UDK.

The water I’m making in UE4 is just an experiment with the technical aspects of a rendering a nice, clear, Caribbean-type water similar to Assassin’s Creed. Caribbean water does not have a lot of foam because the sea is very shallow and choppy waves are highly unusual (do some research). The optimized version of this shader uses 180 instructions. An unlit version that uses basic unlit emissive rendering (no reflections) costs just 96 instructions. If you want nice, clean water that runs well and looks good, this is how to do it. Unless you’re specifically making a dirty lake or still stream where the water is dark underneath and the surface is calm, reflections don’t even show up in the final product at all. Until we get better reflections for water, you just gotta use what we have.