# Does the Principled Shader IOR value effect specular reflection on a transmission material

Other render engines have two IOR values - one for refraction, and one for reflection. But in Cycles there is only one and documentation states it only affects refraction.

Yet with transmission set to 1, it does seem to drive reflection as well.

In the picture example below, both planes are using an identical material except on the left IOR is 1.1 and 1.5 on the right.

It certainly looks like IOR is driving reflection as well, despite the description in the documentation.

Just confirming if this is true?

• The IOR does control reflection too. Commented Jul 26, 2023 at 14:11

TL;DR: the specular value controls the IOR for reflection, the IOR value is indeed just used for refraction.

Background info: The principled BSDF-Shader is based off of disneys principled BRDF. It's called principled because of these 5 principles:

1. Intuitive rather than physical parameters should be used.
2. There should be as few parameters as possible.
3. Parameters should be zero to one over their plausible range.
4. Parameters should be allowed to be pushed beyond their plausible range where it makes sense.
5. All combinations of parameters should be as robust and plausible as possible.

Because of their first principle (easy instead of scientific) Disney decided to cloak the fresnel-IOR in a specular reflection value. This is of course a more artistic approach.

from the disney docs: specular - incident specular amount. This is in lieu of an explicit index-of-refraction

and from the blender docs: Specular Amount of dielectric specular reflection. Specifies facing (along normal) reflectivity in the most common 0 - 8% range.

You can use the formula 𝑠𝑝𝑒𝑐𝑢𝑙𝑎𝑟=((𝑖𝑜𝑟−1)/(𝑖𝑜𝑟+1))2/0.08 to create a node group so you can control both IORs with one slider.

Note that the specular value accepts values above 1.

The IOR does control reflection too. This is to avoid parts of the material being black which could happen if the reflection IOR is less than the refraction IOR.

Some engines do allow them to be modified separately, and avoid the issue with black pixels by ensuring the reflection IOR can't drop below the refraction IOR.

It's correct that the IOR of reflection and refraction should be the same, but from an artists point of view, it's beneficial to be able to set the reflection IOR separately.

You can still achieve a sperate IOR for reflection by using individual nodes (glossy bsdf, diffuse bsdf, and refraction bsdf) to build your material rather than using the principled shader. The IOR would be controlled using a layer weight node into the factor of the mix shader node that adds that element to the material.