better fresnel for dual lobe

Issue #576 resolved
Alessandro Padovani created an issue

This is related to #555. This is also related to #25 as it is meant to improve the fresnel effect. The fresnel effect is what we perceive as reflection and depends both on the surface roughness and light incidence. Now in my tests it seems the light incidence is treated differently in the uber shader and the pbrskin shader. So we get two fresnel effects.

Please understand that this is a complex matter and these results are intended to be an improvement but they are not a 100% match with iray anyway.

Comments (9)

  1. Alessandro Padovani reporter

    Below it's the setup for the daz fresnel for the uber shader. I just added a power by 2 for the roughness that seems to match better.

    Then a couple tests, first iray, then cycles, then the fix.

  2. Alessandro Padovani reporter

    Below it's the setup for the daz fresnel for the pbrskin shader. This time I added a power by 4 for the roughness that seems to match better.

    Then again a couple tests, first iray, then cycles, then the fix.

  3. Thomas Larsson repo owner

    Implemented in last commit. Actually I only tested the uber case, since I didn’t have any pbrskin asset readily available, but since they only differ by the exponent I hope that should work too.

  4. Alessandro Padovani reporter

    Commit 1e9a95c doesn’t work as intended. It is my fault since I was not clear enough. The new fresnel is intended for the daz dual lobe group, it is visible in the pictures above but I didn’t mention it. So the simple blender fresnel in the uber dual lobe needs to be replaced.

    I’d not change the general fresnel outside dual lobe for now. That is, below it’s G8F that doesn’t use dual lobe and the general daz fresnel group without the power node seems to work fine enough in this case.

    Or we may use a more flexible daz fresnel group with a power input that can be 1 or 2 or 4 depending on the case.

    # daz fresnel power
    general fresnel: power = 1
    uber dual lobe: power = 2
    pbrskin dual lobe: power = 4
    

    Also changing the title accordingly.

  5. Alessandro Padovani reporter

    Commit cdda469 is not good.

    The uber dual lobe doesn’t connect the roughness channels. This way the power node is useless if the roughness is not connected.

    The pbrskin dual lobe works fine.

    The daz fresnel with no dual lobe works fine.

  6. Log in to comment