5
$\begingroup$

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?

Example of IOR effects on Reflection

$\endgroup$
1
  • $\begingroup$ The IOR does control reflection too. $\endgroup$ Jul 26, 2023 at 14:11

2 Answers 2

5
$\begingroup$

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.

$\endgroup$
-1
$\begingroup$

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.

$\endgroup$
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .