0
$\begingroup$

Principled BSDF uses fresnel reflections for dielectric materials. Dielectrics have two fresnel knobs: specular for facing reflections and IOR for transmissions.

My googling suggests that principled BSDF uses complex fresnel reflections for metallic materials even though the IOR parameters cannot be tuned:

Metallic materials have a very different reflectance curve vs. angle of incidence. This arises from the complex component of the IOR known as the coefficient of extinction.

The complex component results not only in a shift in reflectance based on angle of incidence, but also a shift in reflectance tint. The base color knob sets the tint for facing reflectance in metallic materials.

A fully metallic principled BSDF node represents an unknown metal, in the sense that the complex component is unknown. Such a metal should have:

  1. Shift in reflectance based on angle of incidence.
  2. Shift in tint based on angle of incidence.

I don't see that. I see a perfectly specular metal with what appears to be no fresnel. I believe this is why online tutorials often plug a layer weight fresnel node into the principled BSDF node:

So is principled BSDF suitable for metals in terms of Fresnel?

I don't know how subtle metallic fresnel is. Is the shift in tint usually a shift in saturation, or an entirely new hue? It would be useful to side-by-side renders demonstrating:

  1. Consistent 50% specular / 50% diffuse without fresnel.
  2. Non-metallic fresnel demonstrating shift in reflectance.
  3. Metallic fresnel demonstrating shift in reflectance and tint.

There are a few complex fresnel shaders available online:

$\endgroup$
1
  • $\begingroup$ I want to point out that I'm not able to render these as of yet. $\endgroup$
    – user19087
    Aug 15 '21 at 15:30
2
$\begingroup$

We can test the Fresnel response of the Principled BSDF. I'm testing in Cycles in Blender 2.93.0. There is no guarantee that Fresnel isn't handled differently in different versions.

Creating a 1,1,1 white world, and a 0.5 gray, 1.0 metallic, 0.0 roughness sphere and rendering with display device set to "None", we can see that the sphere is brighter at grazing angles than at direct angles:

enter image description here

By sampling the render, I see that the value of the pixel ranges from 0.5 at the center of the sphere to 0.7 at the edges. (Which seems like a problem to me, because it's not conserving energy, but at least we've demonstrated Fresnel.)

If we repeat the test with a 1.0 white sphere, we'll see the Fresnel response disappear: the sphere will be 1.0 white at all spots in the render. That isn't a realistic response, but that's because an albedo of 1.0 isn't a realistic albedo-- if we want to reflect all incoming light, and not absorb any of it, it necessarily rules out any Fresnel response.

If we repeat the test with a 1,0,0 red sphere, we'll see that the value of the render remains 1.0 throughout the sphere, but that the saturation of the reflection decreases at the incident angles. Again, this is not a realistic albedo, and unfortunately we're not conserving energy. Decreased saturation at grazing angles is built into the Disney Principled (upon which Blender's Principled is based.)

Behavior with world lighting is not guaranteed to be identical to behavior with emission meshes or lights. However, I repeated some tests with emission meshes and got similar results. I couldn't think of any good tests of actual lights.

Testing in Eevee shows its own quirks that are somewhat different from Cycles, but the general pattern of Fresnel response remains the same.

Note that the Principled BSDF is not designed to be perfectly realistic. It is designed to be cross-compatible (a goal which it might not meet) and to look like the Disney Principled shader, which is also not designed to be perfectly realistic. The Disney shader is designed to be somewhat realistic, somewhat based off of physical values, and somewhat friendly to artists.

You could certainly do something more realistic by using red, green, and blue glossies, multiplying them by a custom Fresnel curve, and adding them together. Still not perfectly realistic; in real life, the spectrum is continuous and unconnected.

Unfortunately, 3D rendering is a collection of abstractions and simplifications of reality. Macroscopic reality itself is way too complicated to calculate.

$\endgroup$
2
  • $\begingroup$ Is decreased saturation more common than differing hue? For example, steel, aluminum, gold? $\endgroup$
    – user19087
    Aug 15 '21 at 22:58
  • $\begingroup$ @user19087 I couldn't tell you why Disney aimed for decreased saturation at grazing angles. Absence of per-channel Fresnel terms was probably to simplify the job of the artists (who would need to specify a specific Fresnel curve for each channel if that was implemented, it's not like there's any kind of standardized "metal" response for that.) $\endgroup$
    – Nathan
    Aug 16 '21 at 3:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.