Possible to get the reflection per-pixel in the Material Shader?

Let’s say I want my surface to desaturate what it reflects or impose some of it’s colour onto the reflection (like a lot of real-life surfaces do), can I access the reflection in the Material?

If not, is it even possible to write a custom Material node (not as in custom HLSL, I mean C++, but either would work!) to get hold of the reflection and modify it in the material?

A lot of real-life surfaces ? Only metals have that property in the real life, everything else “specular color” have to be full white to be real-life compliant :slight_smile:

@TheJamsh: Let me know if you come across a solution here, I have a similar need.

Even if you look at shallow puddles, the reflections tend to be very washed out in colour. We have a granite work surface in our kitchen here at home and it has the same effect, the reflections are usually very dark unless they are from a light source.

You can turn down the specular value to reflect less light.

According to the documentation, water should have a specular value of about 0.255 ( default is 0.5 ). To impose color on the reflection, increase the metallic value.

+1. Specular can be changed per-pixel, roughness too.

+1 And this is actually exactly what you want in this case. Granite has a different IOR (index of refraction, which is what specular exactly is in UE4) then lets say snow. So most materials are between 0.45 and 0.55 +/- so thats why the standart value is at 0.5 and Epic says: “normally you dont really need to touch this value”.

However, it can really make that last 10% difference on how realistic your material appears to be. So if you really want to push it, get the IORs for your desired materials from the web and put them in there :wink: