Landscape Reflection Issue

Hello all,

You might have noticed this since UE4 came to birth, that the reflections on landscapes never looked correct. Or better say, never looked Physically Correct.
The problem is somehow bound to:

A) Fresnel
B) Specular

Let’s look at what’s wrong.

As you see by the tree shadows here, sun is right up there shining down and everything looks fine.

But as the sun starts to have some angles to it, the reflections go wrong.

The first thing I did to solve this was to set a low (almost killed it) specular value. The problem with that is then up close we wouldn’t have any reflections by our feet then, which is not an ideal solution because landscapes layers do need specularity.

The second thing I did was to use the Fresnel node and plug it to a lerp alpha, so I would kill the specularity, and up the roughness, only at the glazing angles.

The difference however isn’t anything ideal and the problem persists.

I did some search on the net but couldn’t find a solution.
Someone else had the same problem in older version of Unity. <— Please take a look at that link as well.

I want to avoid any hacks and stay physically correct. What’s the proper way to fix this in UE4 ?

Another attempt.

I can modify the Fresnel mask by plugging it to a Power/Multiply node and making it more effective. It works fine but it brings other problems with it.

The following scene is in First Person camera angle.

Without any modification to Specular. Notice the strong reflection on the mountains, the color information goes unseen because of it.

Killing specular using the Fresnel mask. Notice it also kills the wet mud reflection in front of the player as well. It’s easy to make the Fresnel mask distance based but it would be a per scene hack. Wouldn’t look correct all the time.

After some more searching, the same problem was in Cryengine as well. But it’s fixed. There is no enough helpful information for me to fix it in UE4 on my own.

I think the ideal scenario is having specular, but no specular gain. Or at least minimize the specular gain.

Took the advice from the slide above. The result is now a lot better.

yea we have still been putting the albedo into the spec for things like grass as well. the problem is that your material really is trying to represent micro facets and self shadowing, and shadows would occlude the specularity not simply be a darker albedo with unchanged specular.

Should I clamp the Albedo with Min 0 and Max 0.5 before plugging to Specular slot? (Since Albedo itself can have values in it that result in over 4% reflectivity. Or this will not work as I think it should?

Thanks for the reply.

I think that the amount of specular reduction needs to be a per-material property. Wet mud will have a different specular behavior in the distance than granite, or grass.