Every now and then I get questions about Reflection Level and IOR. I will use this post as a reference.
I associate Reflection Level with Opacity in Photoshop.
Imagine IOR inside a folder in Photoshop. This folder is Reflection Level. Bellow this folder you have a black layer.
The IOR/Black layer will always be 100% opacity. But you can change the Opacity of the Reflection Level folder.
When Reflection Level is 1, the folder inside Photoshop is 100% Opacity. We get 100% correct IOR values.
When Reflection Level is 0, the folder inside Photoshop is 0%. We only see the black layer. 0% IOR values.
If we change Reflection Level to 0.5, the folder inside Photoshop is 50%. We get 50% IOR and 50% black.
So what is 50% IOR.
First we need to convert the IOR value to Reflectivity.
Let's say our material is IOR 1.5.
Reflectivity = (((1-IOR)/(1+IOR))^2)*100 = 4%
Then we take 4% and multiply it by 0.5 (50%) = 2%
Let's convert it back to IOR.
IOR = 1/((2/(sqrt((Reflectivity/100))+1))-1) = 1.33
So if we use IOR 1.5 and 0.5 Reflection Level, our F0 point will be IOR 1.33 instead of 1.5.
But this is not the problem. The problem is that we also reduce the Fresnel edge by 50%. This edge should be pure white (1 float aka 255 RGB).
50% of 1 is 0.5, the Fresnel edge will be 127.5 RGB instead of 255 RGB. This is where our material is no longer physically plausible.
But since we have done the math, you can just change the IOR to 1.33 and increase Reflection Level to 1. This will give you the same result as IOR 1.5 and 0.5 Reflection Level. Only the material will be physically plausible.
When you buy models online, they usually come with ridiculous values like IOR 1.8 and Reflection Level 0.5.
These are not physically plausible, since Reflection Level is bellow 1.
Let's do some math and see what the actual IOR value is.
IOR 1.8 is 8.16 Reflectivity.
50% of 8.16% is 4.08%.
4.08% is IOR 1.51.
In this case they could just have used IOR 1.5 and Reflection Level 1, and the material would look the same and be physically plausible.
We can't touch Reflection Level, but there are two methods you can use to add imperfections to your reflections. (If we ignore bump/normal/displacement).
You have to ask yourself these two questions:
* Are these imperfections surface imperfections ? In that case you want to use a glossiness map.
* Are these imperfections caused by micro occlusion, small scale shadowing. In that case you want to use a custom IOR map to fake depth.
Corona could auto generate this IOR map from a normal map, but that is currently not the case. (I will share a Normal to IOR LUT soon, but you have to do a few steps before applying the LUT).
If you have a cross specular scan of your material, it does not hurt to use my roughness to IOR LUT. Real world scans always include micro occlusion that Corona can not generate with glossiness or normal maps.
In Vray Next they have added this tool tip. Maybe Corona should do this too.
Here are some examples that show how F0 and the Fresnel edge gets clamped when you reduce Reflection Level.
The right square image is an unwrapped version of the sphere, where each vertical line is a degree. And the right image is a render in Corona.
TLDR;
* Leave Reflection Level at 1 for physically plausible materials.
* Use glossiness for surface imperfections.
* Use IOR maps for micro occlusion, small scale shadowing.