In short it says that common glossy shader models are wrong. In every unbiased renderer!
That cleared my doubts about glossy shader in Cycles. Did you ever notice the strange behaviour with high (over than .5 or .6) roughness values?
A step back.
Being interested in PBR lately (since i found CynicatPro excellent tutorials on YT), i was asking myself ‘what is glossy and what is diffuse in nature?’ my answer was “There’s no difference, diffuse is just like glossy but with a high roughness value”.
The problem is that in CG we don’t have a unified shader that covers these two conditions. Therefore we have two mathematical models, that together cover the whole range of roughness. But again, diffuse is like glossy with high roughness. Or at least it should be.
With this idea in mind I tried to experiment and this is what I have so far:
On the left unchanged glossy shader behaviour, on the right fixed glossy. Notice how at the end (high roghness) the original shader tends to get dark and in general doesn’t look like diffuse
Could you achieve a similar effect by adding two glossy shaders together. Your primary shader would deal with the colour etc - and the second shader would deal with the energy loss.
The second shader would start off black for roughness 0.0 and you would then increase it’s colour as the roughness increases to add in the bit of light that is lost due to the single scattering model.
@moony
the point is that at roughness=1 here i wanted the shader to be(have) diffuse. Adding two glossy won’t work.
@Lumpengnom
as Ricky said. Power of five is also roughly the exponential for fresnel approximation (Schlick). It’s eyeballed, but i liked to reuse this exponential which is already used in another optic physics model
A nice one: diffuse between 0.9 and 1.0 look like roughness (1 to 0) in diffuse shader.
All in all this little test nodegroup looks like a unified surface shader. Since it’s based on diffuse it can’t work for glass and refraction shaders which have the same roughness issue
@Isscpp
How would you incorporate Fresnel into this? In particular the accurate Fresnel from CynicatPro?\
EDIT: I just replaced the glossy shader in my physically based shader which uses the accurate fresnel node, and it appears to work fine, max roughness in metallic mode and diffuse look nearly identical, but there are no fresnel reflections this way as opposed to normal diffuse in the shader.
@Isscpp
this is a very good information!!!
I had suspections that this behaviour was happening, but never went deep into the analysis.
hope to have time this weekend to go a bit deep into the papers.
it’s a nodegroup as shown in the screenshots.
As Kram1032 answers in his post at blendernation, it’s still noticeable a brightening at the end of animation, and at 50-80% you can guess an energy loss. Well, still working on this…