Good afternoon. There have been people in the community saying that cycles' fresnel and glossy BSDF's roughness(i.e the roughness does not affect the fresnel, correctly) are not physically correct. I would like someone, preferably a developer to clarify this please. Thank you.
Nothing is physically correct, it's all approximations. (raytracers don't even implement the wave nature of light...). But you're correct in that Cycles' fresnel node is not as close an approximation as it should be. I'll let Lukas Stockner, one of the Cycles' devs, explain: https://blenderartists.org/forum/showthread.php?390686-Alternative-to-Cycles-for-Blender-users&p=2996756#post2996756
tl:dr: the true fresnel result for a non-smooth surface requires you to calculate it with the direction the ray reflects from the microscopic imperfections of the surface. But this direction is not yet known when the mix shader is evaluated, so Cycles is forced to calculate fresnel for a smooth surface.
There are various tricks to approximate the correct result that make things a little more accurate: https://youtu.be/pNiVB7tRG68 It's not perfect, but on average it will give the same result a correct shader will, so it usually looks fine.
The fresnel node is physically correct if you set the IOR to the correct value of the object. It is the glossy shader that is physically incorrect because blender doesn't reflect things correctly by default. So you have to manually plug a fresnel node into the factor of the glossy shader to make it phsyically correct.
Here is a link to a site that has a list of IOR values: IOR