Reflections clarification (roughness, metallic, fresnel)


I think I’m mostly getting the physically based rendering approach, but I’m not sure about a few details.

Metallic sounds like a property for metal surfaces, but when I want to make a mirror like surface, roughness alone isn’t enough when set to 0. Only after Metallic is set to 1 surface looks like mirror. Is this correct approach (or is mirror some special case with “metal” like surface)?

Where does fresnel effect stand in this? For example with Metallic=0 and Roughness=0, there seems to be some amount of fresnel effect because on the edges of the sphere the reflection is stronger (or that’s how it seems). So how do we control fresnel? Is it derived in “physical” correct way from Roughness and Metallic parameters?

What If I really want to have not-so-physically-based shading of a material? For example on a sphere with roughness of 0,5 I want to boost the reflection in the areas perpendicular to the camera but without affecting the shading via metallic parameter as that seems to bring this metallic quality into the shading. Would be pluging fresnel into both roughness and metallic to make reflections in the perpendicular parts of a mesh more pronounced considered an OK practice?

Thanks a lot for helping with this.

These pages (1 and 2) in the documentation are very helpful in explaining how the Reflection Environment works… but they don’t work for dynamic objects, and we’re warned to not use to recreate a flat mirror effect. You might just be having a hard time pre-visualizing the effect in the material editor (I found fresnel to be especially twitchy when inverted), maybe you’ll have better luck after placing it in a scene with capture actors.

I have gone through most of the documentation that’s available, but I still have those questions I would like to get clarified.
I’m using mirror as the most extreme example to explain my point.

to create dynamic mirror you need something like SceneCaptureReflectActor.
Looks like this is not implemented in current version.

Sorry not to be clear enough, but the point of the question really wasn’t how to make a mirror.

Yeah, I’m afraid I don’t understand the way you’re referencing Fresnel in your example.

Roughness of 0 will simply provide perfect reflection. Too perfect, in most cases, unless you want a REALLY clean mirror.
Roughness of 1 will obliterate all specular reflection.

The above statements are true regardless of Metallic’s value - the values are independent.

Metallic of 0 is a plastic like surface, in which reflections maintain a fair portion of their original color, just as they do with a really shiny piece of plastic.
Metallic of 1 is a metallic surface (yes… I just said that. Sorry), in which reflections receive a large amount of tint from the base color.

Where I’m still confused is in the either/or nature of Metallic and Specularity. What is the fundamental difference between a material with a Specularity value of 1 and Metallic value of 1?

I wonder if this should be a separate question? :slight_smile:

First, look at this page:

Specular isn’t really something you should be using very much. If ever. It’s just there to tweak the reflections that already exist. 99% of the time, you don’t need it.

Mirror-like surfaces will require a Metallic value of 1. Interesting fact: most modern mirrors are actually made from various metals applied to one side of a sheet of glass. :slight_smile: Mirror - Wikipedia

Provided you were okay with having a result that wasn’t physically-based, as in something you probably wouldn’t see in the real world, then yes, it’s fine to connect a Fresnel effect into both Roughness and Metallic. It won’t break anything. It just wouldn’t be “realistic.”

I would probably start by running a Lerp into Roughness, with A and B representing the highest and lowest values I wanted for my reflections. Then power the Alpha with a Fresnel and tweak the exponent until I had nice reflectivity on the outside of my object.

Thanks for the answer, exactly what I wanted to know.

Could you describe how is fresnel calculated when only constants are used for the roughness and metallic parameters?
For example, what’s the index of reflection when roughness=0, metallic=0 or roughness=1, metallic=0 and roughness=1, metallic=1?
Or maybe question about fresnel doesn’t make sense with physically based shading?