Fresnel

Last updated 2019/01/03

The concept

Every material has a Fresnel value which is indicated by its index of refraction (IOR). This value shows how much of the ray is reflected off the surface versus how much is absorbed. Surfaces viewed at grazing angles reflect more of the incoming light compared to surfaces facing the camera. Or, more importantly, surfaces with normals that face the camera reflect less compared to normals that face away from the camera.

fresnel reflection

The Fresnel effect is a very important part of realistic rendering. Everything has fresnel. As you can see on the right, surfaces that face the camera straight on reflect less light than surfaces that are viewed at grazing angles. This might seem somewhat counterintuitive but you will see that it doesn't look right if ignored.

Comparison

fresnel comparison

So the obvious question is if we can actually see the difference between a shader using fresnel reflections and one using simple non-fresnel reflections. As you can see in the image on the right, the faces pointing towards the camera look pretty much identical - they reflect about the same amount of light. However, the faces pointing away from the camera - like the sides and the lid - look a lot brighter and shinier. The right teapot is somewhat dull and we can't really tell what kind of material it is supposed to be, whereas the left teapot looks more realistic to us even though we are incapable of telling how much it reflects at each angle. We encounter this phenomenon everywhere in daily life without noticing most of the time. Think of a puddle that almost looks like a mirror in the distance but you can still see through it if you look straight down from above.
Everything has fresnel. However, there is an important distinction between metals and dielectrics.

Metals and dielectrics

reflectance curve of plastic (ior of ~1.5)

reflectance curve of aluminium

As stated above, the reflectance is controlled by an IOR value (index of refraction). If you map the reflectance of a material for each angle of incidence you get a curve. You can see on the left that the IOR of plastic (that is at around 1.5) has a very low reflectance of just around 4% on small angles and gradually increases to 100% on the maximum of 90°. Most dielectric (aka nonconductive) materials like wood, plastic, rubber, glass etc have a very similar IOR and thus a very similar reflectance curve.

Metals, on the other hand, have widely varying IORs and are generally much more reflective on all angles. Look at the second image on the left, this one shows the reflectance curve of Aluminium. There is still a small dip in reflectivity but it doesn't go below 85%. This is the reason why IOR for metals is often ignored and only controlled via a color and some arbitrary "high" ior value. There is, however, also a trend in high-quality offline rendering to provide a "complex fresnel" input method for metals that is using "n" (for ior) and "k" (for extinction coefficient) values in multiple wavelengths to create a very accurate and more realistic representation. The visual impact is usually rather small and thus considered negligible for many use-cases.

The generally similar reflectance of dielectrics and the difference to metals is big enough to be able to cut some corners. This is usually referred to as "metalness" workflow and will be discussed in the "PBR" chapter.

Glossy fresnel

standard vs. glossy fresnel

With glossy fresnel, the reflectance curve is modified in regards to the roughness of the material. Without glossy fresnel, rough surfaces appear to be too shiny on the grazing angles and almost velvet-like which makes sense since these parts are very reflective. In reality, however, those rough surfaces do not reflect as much light as a smooth surface would do. On a rough surface, you would generally see more areas pointing towards you (much like looking at the sides of a mountain range) and thus reflect less. Refer to the second link in the additional reading material for a more in-depth explanation. This technique is fairly new so it has not been implemented everywhere yet. However, if you see a setting for it and it is not activated make sure to do so. The resulting difference in realism can be quite dramatic.