[Bf-cycles] Cycles Fresnel behaviour

Sergey Sharybin sergey.vfx at gmail.com
Sun Jan 11 22:18:54 CET 2015


I think the main reason you don't see fresnel term in the microfaset code
(actually, in all BSDF code) is because it was designed in a way so you can
mix it with fresnel term in the shader tree.

Now, i would think for more realistic results fresnel should be
per-microfaset, even if it'll be approximation of fresnel. it might be
needed to re-consider user interaction in the nodes a bit to support
"manual" mixing with the fresnel term, but it should all be doable.

On Sat, Jan 10, 2015 at 2:10 PM, Dmitry Andreev <andcoder at gmail.com> wrote:

> Ok. It looks like my old post on blenderartists.org has been removed but
> this one reports similar issues:
>
> http://blenderartists.org/forum/showthread.php?303499-Begging-for-the-return-of-IOR-for-Glossy&highlight=Fresnel+term+incorrect
>
> The issues is this.
>
> From artists point of view - you get really odd specular highlight
> behavior when using microfacet BRDFs (GGX, Beckmann) with Fresnel node.
> Basically you get "glowing edges" effect.
>
> That is because when BRDFs are calculated F term (Fresnel) is not taken
> into account correctly but instead it was taken out so that one could use
> Fresnel node instead. The problem is that Fresnel at the point of BRDF
> evaluation is H (half angle) based (read - microfacet). But later in the
> pipeline Freanel node is geometry normal based. It seems like not that big
> of a deal and in fact it is hard to find cases when it breaks but once you
> try to get something to look realistic or replicate photographs then you
> get to see it break.
>
> So from the programmers perspective the problem is here:
> bsdf_microfacet_ggx_eval_reflect and bsdf_microfacet_ggx_sample in
> bsdf_microfacet.h
> (it is the same for beckmann as well)
>
> float out = (G * D) * 0.25f / cosNO;
>
> notice that there is no F term there...
>
> In sample function:
>
> // eq. 20: (F*G*D)/(4*in*on)
> float out = (G * D) * 0.25f / cosNO;
>
> same thing - F term is not taken into account whereas the comment states
> correct equation.
>
> This F could be as complex as one can get, but even Schlick's
> approximation similar to the actual Fresnel node work fine so no really
> need for Maxwell's equations as one would think. The only catch is that in
> here it depends on H (microfacet normal) as opposed to N (geometry normal).
> This little detail makes a huge difference.
>
>
> On Fri, Jan 9, 2015 at 3:07 PM, storm <kartochka22 at yandex.ru> wrote:
>
>> It have no sense, as Fresnel node paired with mix node assume layered
>> physical surface, with infinite small almost flat dielectric last layer
>> (coat). By definition, if you assume microfaset it will broke whole idea
>> about Freshel equation, as it related only to almost perfect(with
>> respect to wavelength) polished boundary between media with different
>> IOR. If you want Freshnel- like law with microfacet, you will end with
>> extreme complex Maxwell equation that hard (impossible for me) to solve.
>>
>> В Пт, 09/01/2015 в 21:44 +0100, Marco G пишет:
>> > @storm - what i've read it's not related to more physically correct
>> > glossy, the point highlighted in many sources is about Fresnel, which
>> > needs to be computed per-microfacet.
>> >
>> > A user following the list kindly pointed me to the same very topic on
>> > this list, back in 2013, and gave me permission to link back here.
>> > It's what i've tried to say (though my understanding of what's
>> > involved is much more limited)
>> > Hope this clear things up a bit. By "improving" this - if feasible -
>> > artists should get better shading when fresnel and rough glossy are
>> > involved (i.e. a ton of materials, not really corner cases), both at
>> > grazing angles and at facing normal, like the head examples from
>> > arnold.
>> > http://lists.blender.org/pipermail/bf-cycles/2013-May/001397.html
>> >
>> >
>> > Regards,
>> > MG
>> >
>> >
>> >
>> >
>> >
>> > 2015-01-07 10:11 GMT+01:00 gandalf3 <zzyxpaw at gmail.com>:
>> >         Just in case anyone is wondering, I think this is the project
>> >         storm was
>> >         talking about:
>> >
>> http://blender.45788.x6.nabble.com/Realistic-Nk-Data-Metal-BSDF-td116555.html#a116623
>> >
>> >         --
>> >         -gandalf3
>> >
>> >         _______________________________________________
>> >         Bf-cycles mailing list
>> >         Bf-cycles at blender.org
>> >         http://lists.blender.org/mailman/listinfo/bf-cycles
>> >
>> >
>> >
>> > _______________________________________________
>> > Bf-cycles mailing list
>> > Bf-cycles at blender.org
>> > http://lists.blender.org/mailman/listinfo/bf-cycles
>>
>>
>> _______________________________________________
>> Bf-cycles mailing list
>> Bf-cycles at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-cycles
>>
>
>
> _______________________________________________
> Bf-cycles mailing list
> Bf-cycles at blender.org
> http://lists.blender.org/mailman/listinfo/bf-cycles
>
>


-- 
With best regards, Sergey Sharybin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-cycles/attachments/20150112/b44d8396/attachment.htm 


More information about the Bf-cycles mailing list