Thin wall refraction still not generate node for eevee correctly

Issue #326 resolved
engetudouiti created an issue

I not hope to things complex current offer daz material BSDF node groups, but it simply can not generate Thinwall glass material with recent commits. (with any setting)

I seldom use BSDF nodes option, (mainly use pirincipled BSDF then customize my self), but happend to test scene with BSDF option.

(change gloval setting like this)

then import scene (I checked it only use default DAZ iray shader for all mat include thin wall refraction)

The problem surface use iray uber with Thin wall refraction (it already have discussed again and again)

Then add on generate, daz Refraction node gorup, with thin wall setting (because refraction ior set as 1.00) and it work as I supposed, but not work for eevee. it is not matter how I change setting etc.

The reason is simply enough, when there was layered material , even though you generate custom node, and it plug out Cycles and Eevee, if it use refraction shader, there is no chance to show covered surface with refraction BSDF for Eevee.

The only answer to solve issue, you force to use Transparent shader with glossy shader, then generate custom shader.I do not say, it need to offer perfect, but is is simple logic. or it never work for Eevee render. then after all you remain this issue.

About this issue, you need not change current Refraction shader group for cycles. you only need to change node for Eevee.

Current one (it use same group for cycles and eevee) like this (which add on generate)

So what you need is, when there is thin wall refraction node, you must change it with transparent mix shader (make it as you like)

at least it can show covered surface for Eevee. (how add clear coat etc, it is not matter) actually if you set refraction Ior as 1.00 for thin wall, there have no maning to use refraction shader. (without you hope to offer user customize)

Then how you try it, it never work for Eevee mat.

one custom node should be like this (as I said it is for Eevee, I do not say anything about cycles,) if you do not hope to use backface circulation, you may better simply only use mix shader without Geometry node, (glossy and transparent with fresnel) at least it work as thin fake glass for Eevee still. or add on never show thin wall glass correctly for Eevee with BSDF option.

Once it worked (at least show back converted material, and some reflection, edit as you like) if you say, for Eevee , recommend to use pincipled only.. it not matter. (but even though I main use cycles, for animation test render, and to easy check, in view port render, I still use Eevee. )

Then I do not know, why it still happen with Pirncipled setting, (because I believed it is solved by other commit to generate double principled bsdf (though I did not approve the way ). I suppose (without I removed it and plug in not auto recover my edit one) add on olready solve the issue, but about this scene it not worked. (though I use custom one for refraction , just feel strange why it not generated dobule principled shader)

Comments (32)

  1. Alessandro Padovani

    The bsdf option is not designed to work with eevee. It is designed to work with cycles and get the best possible quality to match iray. The principled option is designed to work with eevee and all engines compatible with the principled shader such as U4 via gltf and prorender. Thus it also works with cycles. At the cost of some approximation of iray materials.

    Then Thomas insisted for the dual output, that I don’t agree myself since it makes little sense in my opinion. The materials would be nicer and clean with principled for eevee and bsdf for cycles.

    1. bsdf: cycles only, full iray materials
    2. principled: cycles and eevee, limited iray materials

  2. engetudouiti reporter

    So I said I do not hope to talk about cycles nodes. it perfectly depend Plug in Author.

    to work both, it depend how you make shader group. so yes if you hope to keep current BSDF node gorup for cycles, keep it .

    But we only need to divide and generate 2 different groups for cycles and EEVEE in current group. so we can use one shader group which include 2 shader nodes for both. it is not matter (Principled option or BSDF option)

    There is no reason we need to separate them which only work for one. We can separaete node group for both render engine, with use one group nodes

    It is reason why blender 2.8 offer out put nodes which can change when we select render (and it auto use currently used for view port)

    Just include new shader node group which customized for Eevee, then connect it to Eevee out put. at same time as you hope, remain all node group for cycles. it make any problem at all. just improved. Of course I suppose there should be case, current BSDF node not work for cycles, (maybe with volume option etc, ) but it is not matter to enhance BSDF nodes for eevee comaptible, when we find problem then, there is way to solve issue, we simply add the node group into current one.

    You can ignore EEVEE part, if you do not hope to see it in current BSDF node group. (if you do not like 2 group are included in one shader. Of course there may be user, as same as you, who like to divide shader perfectly for each render, (not include 2 type in one shader) but if so, you can request it, (add option, generate only one shader group for each render.)

    I not hope to re-import shader, or import 2 material then manually exchange etc. just hope to use blender offer function = we can make 2 nodes group for each render as one shader. about this problem, the answer is simple enough. then can easy slove. (though to generate node group by python, I still not try it, but For Thomas, it is not complex thing any-more)

    I approve, principled bsdf is more easy to use for Eevee, but about this problem after all we need transparent shader, then principled bsdf not solve . (Blender developer answier was, change geometry which work for Eevee)

  3. Alessandro Padovani

    It is just that I like things simple. Ideally yes, we can make a dual output to work both with cycles and eevee. Practically, since we have the additional task to convert from iray, the bsdf setup is already complicated enough without having to add even more complexity with the dual output. Making the materials a mess.

    Indeed when the dual output was introduced it came with bugs that were fixed in #154, and those were only the most obvious ones, since I didn’t have time yet to check the dual output materials extensively. I preferred to focus on the new principled materials for eevee.

    The more we complicate things the more we open the way to bugs. And also make it harder to find and fix them.

  4. engetudouiti reporter

    So it actually not complicate at all.. just divide 2 groups for cycles and Eevee.

    then if current BSDF good enough for cycles. but not work Eevee, we just need to make things work for eevee part only.

    if current principled bsdf option is for Eevee, . just use current principled bsdf option part as eevee group, then add the group for current BSDF set up, but divide as EEVEE and CYCLES by out-put as same as before.

    Though you do not like dual output,, many blender user like it. because so we can see reasonable material with Cycles render and viewport Eevee render. (if user main use cycles for render). Actually current shader is offered so..

    I understand, if you menas, it work well for Cycles, then do not touch it. but I said, shader group which out-put for Eevee.

    Then about this problem, principled option or BSDF option actually not matter. For thin wall circulate, current BSDF set up refraction ior as 1.00 = it should be represent by transparent shader. so just use it. then this problem never happen about thin wall glass. for EEVEE and CYCLES.

    My thinking about why there are 2 options,

    Principled bsdf : try to shader nodes simple , (so only add some shader or somtimes offer double principled bsdf, without it , it cause clear problem.. like color perfectly change or like this issue (we simply lost material of layered part)

    BSDF option : try to offer “Better” conversion . Principled option for Eevee not correct. because when convert shader from iray to cycles and eevee, about both render engine, we need some tweaking, .. as fact, principled bsdf can work better for Eevee.. but the logic only have meaning, when prncipled bsdf can render the iray material correctly.

    change option can not offer any answer about thin wall glass issue. and if change thin wall not use refraction shader but use transparent shader, (actually there is no meaning. perfeclty no. ) it work for both. so there is no reason to keep use it for thin wall glass. Then I need not report same thing again.

    When thin wall, just convert, refraction shader to transparent shader in current offerd one, it never show any difference. about refraction shader effect , eventhough you only use cycles.

  5. engetudouiti reporter

    If convert all thin wall refraction node (ior as 1.00) as transparent node, but keep other node (fresnel or glossy), only thing I consider, is it lost refraction roughness socket but actually it not matter. because when we use refracion as ior 1.00 , how you tweak refraction roughness it do not show any difference. so the roughness value are not used at all, even though you input value. after all to change the way, you may need special customize.

    So at least current BSDF shader node show any difference, when thin wall , remove refaraction, use transparent shader with glossy shader. so Eevee do not complain any-more.

    I think Thomas may use valuables which represent each shader nodes, so as script, change refraction node as transparent node, when Thin wall = True,, it not so difficult I suppose. just need one condition check.

    (I do not test if Iray can show smokey refraction roughness, maybe iray can do it, but after all current BSDF plug in generated nodes, not use refraction roughness at all. (it no meaning to input value, when ior = 1.00) so only glossy roughness change result.

  6. Thomas Larsson repo owner

    I think that in theory, a refraction node with color = white, roughness = 0 and ior = 1 should be equivalent to a transparent node with color = white; the light rays just pass straight through, and the only effect should the reflection made by the glossy node. However, in practice this does not seem to be the case. I have often (but not always) had a problem with eyes being too dark, when the cornea and eye-moisture materials are thin walled.

    Since refraction and transparency should be the same in this case, I changed the DAZ Refraction group to mix them together.

    In cycles, the result depends a lot on the mix factor: pure refraction is too dark, pure transparency seems too flat and uninteresting, and the most appealing result is somewhere inbetween.

    For eevee the result does not seem to depend on the mix factor

  7. Alessandro Padovani

    daz studio 4.14, blender 2.91, diffeo 8a4d844

    The dark eyes issue is due to refraction shadows, that both cycles and eevee can’t compute right because they are caustics effects. As for eevee they are ignored for short distances, so the issue doesn’t show up in eyes. As for cycles it shows up with graininess that makes the eye a little darker, but since this is an issue with the cycles engine itself, which can’t compute caustics right no matter what, I find it difficult to provide a true solution.

    The transparency trick is one viable way, or we can clamp shadow rays, or we can use other tricks. But they are still just tricks, not a pbr solution. Anyway, to help with this and better provide a ground for comparisons, I did a simple test scene. The blue ball is thin glass, the red ball is volumetric glass.

    NOTE. Be sure to set the backround color to black in blender after the scene is imported. I thought the background issue was fixed in #291 but it seems it's back or not fixed in this case.

    Below the glass scene in iray. You can see that iray computes caustics quite nice, I used the caustic sampler to help convergence but even without it's quite good.

    Below the glass scene with the bsdf option. First cycles then eevee. You can see that cycles is not good with caustics, while eevee simply doesn't get them and uses black shadows instead. I also used the denoiser otherwise there's strong graininess in cycles.

    Below the glass scene with the principled option. We get the same as above. The principled shader seems a little better with cycles in this case. You can see the back reflections on the blue ball that are missing in the bsdf option.

  8. engetudouiti reporter

    @ Thomas, as your result show, at least, we can confirm and agree,

    “simply use transpraent shader wigh glossy” offer better result as thin wall glass without thinking about complex things.

    If not thin wall, I depend yours how you offer it then ,I request only one thing.

    please use transparent and glossy mix shader, as I mentioned,, (not use refraction shader for thin wall, and change as transparent, then it cause no issue. so you need not use refraction shader for “Thin wall” , it is same as iray.

    iray never circulate or use different ior for thin wall refraction, only use the ior as reflection circulation.

    Then I strongly recommend, for thin wall, circulate back-side fresnel ior as 1/ior to get more reosonable reflection when lay come from geometry back-side. .

    (when light try to pass through from back to front, about reflect , ior need to change as 1/ior. current fresnel node not work so. it may try to reflect as ior = 1.00 (when I checked before, or keep to ues ior value eg 1.4 to mix glossy shader with fresnel node)

    you can mmmic it, with geometry node really easy . see I linked pic before. or check

    https://devtalk.blender.org/t/principled-bsdf-transmission-behaviour/2096/3

    Then I think why you see difference when transparent and refraction ior as 1.00, fresnel circulation way may effect it.

    current fresnel node not set fresnel ior for backface, but maybe used as 1.00 (so hard reflect to back side, not come through fully) when mix with refraction I suppose. why transparent not show the issue, I need more reserch,

    but maybe refraction shader not supposed to use for thin wall (it need volume), or it may be work, if we double geometry, then set normal correctly. (but we should not change geometry, so for thin wall, not use refraction can be theory.

    or you may need many complex thing without clear confrim (only guess work)

  9. engetudouiti reporter

    Only one thing I may apologize is, when I requested it long time before, I did not notice, ior need to set as 1/ior because as Thomas said it work. for eye surface of all daz offered. (transparent with glossy by fresnel node only)

    But when it use as thin glass shader, light need to pass through from front. and diffuse use geometry or back ground may not be shown correctly. (because about fresnel ior keep to use same ior value for back-side reflection, then it effect too)

    Then I remember Alessandro show test case (it show plane image through thin wall glass (which I offered), ,and he tried to modify as new fresnel, but I remember, it simply change ior as 1.00 for backside. (so it is not 1/ior ,then light full reflect. as if mirror about lay come from back side I suppose)

    So even though Thomas could not see clear problem for Eye mats , as Theory

    1. use transparent shader for refraction ior 1.00 (when iray = thin wall, and use refraction)
    2. circulate backside fresnel (reflection ior) as 1/ ior value for Thin wall. (like 1.4 to 1.5 normal glass or water etc, how you modify it as you like please (I do not touch it)

    It can be theory. for Cycles and Eevee. (though double pricnipled with alpha? I do not clear remember, at least it show back face,, with clearcoat reflection, Then Thomas use it for pincipled, I do not against it any more, but if yours intend to use BSDF option more correct shader ,, you may approve those 2 things, I really hope to know reason if you reject it. but anyway, I report what I noticed, about this case,, actually current BSDF shader not work for EEVEE. then (I do not know reason byt, principled option not show me double principled shader, for monster EYE.. ^^; it seems different bug,when generate dobule principled for thin wall I suppose…

  10. engetudouiti reporter

    Thomas even though you feel refraction and transparent mix is interesting, it is not correct real guess work I think.. then if it show somehow more interensting or more correctly you think ,, I suppose it is because fresnel ior not circulated correctly, then the mix one may replesent (though I can not circulate what happend with mix those) the back side more correctly.

    if you cicrulate backside ior with use 1/ior (devide math node) for fresnel shader (which only circulate correctly (front to back lay ) I think you get most interesting effect without mix use both (so how you decide mix value,,,

    maybe mix means, use ior as 1.00 and ior as 1.4 for back-side circulation (it may work so, when we mix cycles refraction and transparent shader ,, for back-side,, I assume)

  11. engetudouiti reporter

    Then about reflaction with shadow (cycles) is different problem

    https://docs.blender.org/manual/en/latest/render/cycles/optimizations/reducing_noise.html#render-cycles-reducing-noise-glass-and-transp-shadows

    I recommended before merge it to BSDF glass nodes, (at those days I have offered my custom version multi glass shader, then still use it for Cycles. (same thing happen if you make glass shader with refracltion and glossy mix fresnel too

    but it need to tweak manually each value (not auto converted) so after all removed it from option, because plug in expected to set value as auto.

    So Thomas pic actually show this issue. (mix transparent with refraction (or glass) then shadow cause issue)

    My shader set up include those nodes, (the mix the shadow effect)

    even though I use the option, it never show real caustic glass effect. (but can remove some un-necessary shadow and offer clean shadow easy)

  12. Thomas Larsson repo owner

    Here is what I get when rendering Alessandro’s test file, with 128 samples and denoising. First refraction then transmission:

    The first image shows some nasty artefacts in the thin wall case, probably due to refraction shadows. We can get rid of the worst problems by clamping indirect light with 1.0 rather than the default 10.0:

    But then I wonder if there should be any refraction shadows at all in the thin wall case, see next comment.

  13. Thomas Larsson repo owner

    I’m trying to understand what happens to light in a thin wall.

    The incoming ray is split between the reflected ray and the refracted ray. If we ignore absorption in the thin layer, the incoming energy = the sum of the energy of the two outgoing rays. So there is a shadow effect because there is less light on the other side of the wall. But that effect depends on the grazing angle, and I think it is already taking into account by the Fresnel mixing. A refraction node seems to generate additional shadows, and I don’t understand where they come from.

  14. Alessandro Padovani

    The backfacing ior pointed out by @engetudouiti works great to fix the bsdf back reflections in the blue thin walled ball. Below the comparison first and after the fix. We can see that before the fix we miss the backface reflections, as also noted above.

    Below the fix to the DAZ Fresnel custom group, that uses 1/ior for color 2 instead of a white color as the previous approximation did. So this is good and we can implement it as the new DAZ Fresnel. Thank you engetudouiti for pointing this out.

    As for the refraction shadows in your second link on the blender page, I know it but personally I don’t like it too much because it goes from to bad caustics to no caustics at all, that I don’t consider an improvement myself.

    Thomas, I’m also considering your ideas and I’ll do some tests with them too, if it may help.

    https://devtalk.blender.org/t/principled-bsdf-transmission-behaviour/2096/3

    https://docs.blender.org/manual/en/latest/render/cycles/optimizations/reducing_noise.html#render-cycles-reducing-noise-glass-and-transp-shadows

  15. Thomas Larsson repo owner

    The latest commit uses transparency for thin walls, and implements engetudouiti’s fix for the fresnel group. Here is the test scene with default settings:

    And here is eevee. All colors are lost (except for the highlights) as well as the distortion for the red sphere, but at least we see something. Since I’m mainly using the plugin as a character generator, I’m mostly concerned with eyes, and this may work in that case.

  16. Alessandro Padovani

    I believe we can do better for eevee but need time for some tests. The gray shadow is normal because eevee can’t do colored shadows. The gray glass is not good, also the total lack of refraction for the red ball is not good.

    As a side note the bsdf option with cycles doesn’t need any trick, it works just fine as is. What engetudouiti is proposing is needed for eevee only. Unless the transparency for thin glass is to get better shadows for eyes to help with the bad caustics.

  17. engetudouiti reporter

    Thomas I do not use shadow terminator for Eevee. as you already checked, it may not cause different, so please test with non shadow terminator for Eevee.

    and I do not recommend it for thin wall. (transparant or Refraction change with shadow ray). the technic need not when you use ior as 1.00

    After all, to get Thin wall, simply use Transparent shader offer more good result. for both case.

    Because when Ior as 1.00 we do not need any refraction Ior. and we do not need to use shadow terminator. the problem is you mix use refraction and transpaernt, then it happend to show the effect , then you feel mix use refraction show some difference.

    And Change fresnel circulation must need if we use solid thin wall. current custom fresnel node are atcually partially changed ,, but it not work as divided ior, but change as 1.00 fresnel when ray come back-face. (it is not what I need) but even better,

    1. about both case use Transparent,
    2. about both case, use ior/1 for backface
    3. shadow terminator may need not for thin wall, but may need when we use glass or refraction include shader with ior value (not 1. 00)

    I only use shadow terminator, when I hoped to get color shadow etc,, so it need manuall on and off for each case. do not expect it work for auto. (actually you happend to see it,, when you mix refraction ior and transparent I suppose, but it means they show difference, not means mix refraciton get better effect.

    I may up-date later, and how it change.. anyway, at least I hope it can show layered surface (diffuse map) .and if you actually did what I mentioned. it should show back surface map clear for Eevee.

    and change fresnel ior as 1/ior for backface geometry, , it should show better fresnel reflection, when we see the plane from back side. and it may effect when lay come through from back side too. (should be)

    I think it is limitation of fresnel node. then it may only effect when we use fresnel for transparent material (refractive) because we never see lay come through from back side, so do not need to circulate backface for other material. so fresnel only count about front face with material ior. after all it is used to change shader as glossy shader.

    so when we use blender default fresnel,, it show wrong circulation for thin wall back-face.. then current custom fresnel change ior always as 1.00 for back-face.. my recommend way is use 1/ior. it is best I believe.

  18. engetudouiti reporter

    I attached my test scene whch use multi glass shader (for cycles), and EEVEE thin wall shader.

    For eevee, shader node is simple so I keep it without grouping but on frame.

    It work for cycles as mulit glass shader (most of change which I need are included..)

    for Eevee it is simple thin wall shader . (I do not expect refraction match about EEVEE render, so do not request it, only need thin wall glass with some clear reflection setting. and it need to show covered area, and it need to work we layer 2 transparent mesh)

    this is viewport render, so I do not see any problem at least to get inside mesh color, and layred thin wall.

    btw I include Principled bsdf clear coat shader, (divided) as custom node, so it actually offer iray glossy + clearcoat, with add shader only = that means you can add the clearcoat node separately, whenever you need for all material. and it is how principled bsdf clear-coat work. (add only ). with self normal . anyway I hope you actually download it, and test it. then if it not work,, attach your blend file with keep my current shader please. (so I can learn, when it not work)

    Then to test these things, do yours really need real image attach? with color if it work, it should work I suppose…

  19. engetudouiti reporter

    And I think if Script change color etc,, sometimes it may not reflect for Eevee on that time. I often need when I change color for Eevee (like transparent color), I need to select the mesh again etc (viewport up-date may need)

    So I suspect, if Thomas issue is that,,(though do not test recent modify still, it relate with how you set render setting too. to use cycles as main render, I only change view port setting (refraction, reflection , bloom on etc)

  20. engetudouiti reporter

    And one thing it is important, about custom fresnel. Now I checked it then it may work for most of case.

    But it may not work with glass for some case.

    Because please remember, you include fresnel roughness for custom fresnel node, then use it for all material.

    The difference was it mix incoming vector with geometry Normal (mix with the mesh normal) vector, then force to change fresnel node Normal. with vector. to mimic fresnel roughness so now we can see edge hard reflection change with the roughness value.

    But it means about backface, the Normal need to consider too, as same as we change fresnel ior.

    I mimic it with change Normal vector mulitple with scale -1 for back face. (so it may show normal correctly for thin wall back face for my custom-made one, basically it seems work for me, I suppose but still not confirm with all case,, so do not know it is right or not)

    If you do not use fresnel roughness (your custom verision) at all, but simply use default cycles offered fresnel node, this problem need not to consider. but it may remove fresnel roughness controll.

    if you use fresnel roughness by change normal direction, sooner or later there should be case it need to consider back face normal too.

    The actuall author who first introduce PBR like shader for cycles. with you -tube, after that one popular blender pro user just re-create it then introduce it. (but all work are made by Cynicat pro. he is real man who introduce the technic to mimic fresnel roughness)

    https://www.youtube.com/watch?v=pNiVB7tRG68&ab_channel=CynicatPro

    Then he actually mentioned about this problem in another place,, . (his custom fresnel may not work for glass well , ) (at same time he offered different shader for glass only , but not offer for thin wall etc.. so mix 2 technic, (mimic thin wall, with customize fresnel roughness) may need more work,, (then I do not request it match, I do not hope to use my hobby time to get perfect multi glass shader (thin wall + fresnel roughness) so if you find new problem modify as you like please ^^;

    (remove the custom fresnel, or try multiple -1 then mimic backface normal etc,, or simply leave it off or try alessandro way (I do not remember clear, but it tried to change normal for backface ,, I suppose)

    If someone real know well how cycles work, ,I hope he modify my custom one I included in blend file., and teach me, what is wrong. (I believe there should be case it not work correctly about backface normal circulation… )

  21. Alessandro Padovani

    @engetudouiti

    I tested your idea of inverting the normals for backfaces, but it doesn’t work. That is, it works but it is not what iray does. This is why it is important to always do tests and not rely on pure theory, because we may assume things that are not.

    Below the setup and then iray and then cycles. We see that iray only shows the reflections for the outer surface of the blue thin ball. If we invert the normals for backfaces we also get the reflections for the inner surface that iray does not. The 1/ior idea is implemented though and it is good.

    The images in the reference scene are good to test refraction effects, especially the ground image.

  22. Alessandro Padovani

    Thomas, to reply your questions.

    The “additional” shadow for refraction vs transparent is not a shadow, it comes from the denoiser. That is, when the denoiser blurs the graininess it gets a darker color. It is clear if we turn off the denoiser. Below we have the first image with the refraction shader, and the second image with the transparent shader. The denoiser is off. We can see that the transparent shader doesn’t generate noise, so the shadow color is clean.

  23. Xin

    Alessandro you were right first, the shadow present with a refraction bsdf is just the slow convergence of caustics in Cycles as a result of how path tracers work, not just in Cycles. If you let it render for a very long time, the shadowing should go away (and you should get the early signs of caustics too).

    In general, caustics require a special treatment/algorithm to not be extremely noisy/slow. Such treatment usually requires path tracing from the light sources on top of the usual path tracing from the camera, so the cost is quite big for what is virtually never required (if you are interested, this article explains the problem in simple terms: https://www.chaosgroup.com/blog/what-are-caustics-and-how-to-render-them-the-right-way ).

    For eyes and the vast majority of cases caustics don’t really matter, getting rid of the shadowing is the important part. The usual workaround in Cycles is to use the Light Path node and connect Shadow Rays (and maybe Reflection Rays) to the Fac input of a mix node with the refraction bsdf as the first input and a transparent bsdf as the second input. This is, I believe, a better workaround than what Thomas did above by mixing a transparent bsdf and a refraction bsdf with an arbitrary value for ALL rays.

    This is just for the usage of a refraction bsdf in Cycles in case you really needed to use a refraction bsdf (for example, because you are dealing with thick walls or because you want to use the roughness value of the refraction bsdf). I haven’t read all the other parts of the discussion, so I’m just commenting on this issue.

    By the way, you can make the transparent bsdf have shadows if you disable the Transparent Shadows option in the material settings. But of course, you don’t want that here.

  24. Alessandro Padovani

    Xin, are you sure that colored glass doesn’t cast shadows with a 100% caustic convergence ? I mean, the iray rendering seems well converged to me and there are shadows together with caustics. Unless you mean thin walled glass. Also I don’t agree that caustics are a minor feature that is never required. It may be so for toon animation, but not for movie fx and photoreal rendering. Then we get to work with what we have, that’s cycles.

    Otherwise your other suggestions is what I’m currently working on and I got to the same conclusions. What’s difficult is getting decent results with eevee because it’s extremely limited as for refraction. I’ll post some results soon. Thank you for your comments.

    p.s. We can get exceptionally good caustics in blender by using luxcore that’s bidirectional, but it’s cpu only. https://luxcorerender.org

  25. Xin

    I meant shadows relative to a transparent bsdf with Transparent Shadows enabled. Basically any additionally shadowing that might appear at first when using the refraction bsdf with few samples.

    The darkening is just the path tracer not having found enough paths to the light yet. That is so because these are real refractions so it can’t know where the light comes from at the moment it bounces off the floor. When using the transparent bsdf, it knows precisely where the light comes from at the moment it bounces off the floor, so it can sample from those directions more, getting rid of noise and converging faster.

  26. engetudouiti reporter

    @Alessandro

    Thanks you test. Then I do not think my conversion way show pefeclty same for iray, so I still not finish my custom shader (not for this plug in auto conversion)

    but at least if we do not take count back face normal, custom fresnel should cause issue with change camera angle and see plane from back-side. because to custom fresnel work, it need to use geometry normal with incoming vector to mimic fresnel roughness.

    The difficulity is, I still not test all case, then still not find “ which vector I may need to invert for back -face or not”

    I afraid after all we should see some un-expected (not correct) reflection with custom fresnel node, when it need to count back-face reflection. Then it may only show wrong result with refractive (transparent) material.

    If I really hope stability, I may not use custom fresnel (roughness include) for glass material which ray will transsmit from back face.

    MDL can attach shader (for thin wall) for front and back separately to mimic thin wall surface. I can not understand how it circulate rnomal ,and how daz used it for thin refraction , reflection, when we set “Thin wall” it basically show no issue. (we can make it in daz studio shader mixer, or can write MDL code, actually it is easy.. (we just need to assgin shader node for both face,, separately)

    When I found the problem, I can not find how to adjust it correctly to work for all case, when we need to circulate back-face. so I temporally use my fix. (at least it not heavy strange issue for me, so I use it but some-day If I can find perfect answer I may include it in my custom node.

    For user, I think about glass shader, we may better not use custom fresnel witch made to get fresnel roughness function. (of course we can still adjust glossy roughness without problem, it only matter to remove hard edge fresnel of glass)

    But It was me, to recommend to use the custom fresnel for all material, which can count fresnel roughness, and after all Thomas may choose which way is better. (I may choose for plug-in,, not use custom fresnel for refractive mat)

    about this issue, it may not be shown so clear untill we use the custom fresnel include glass shader for compex scene, and change camera angle etc,, Then as I said, I depend Thomas and other one who may imporve it. And I do not against how Thomas decide it.. but about reverse ior, and use transparent, I push to change so, then now it seems already improved.(finally) thanks.

  27. engetudouiti reporter

    Then I remember at current if I select “pricipled bsdf” otpion, I suppose double principled node generate, and show monster eye. but about my OP scene, howmany times I test ,plug in not generate double. then not work correctly for Eevee.

    after up-date, BSDF option can show it correctly but principled not. (what I means correctly, about this case, it simply not show back diffuse map behind of the monster eye glass as same as G3 or G8.

    So I suppose, when generate principled bsdf (double) may need to re-consider? (actually it need for this case)

  28. engetudouiti reporter

    OK I think my OP request is solved then close this topic.😀

    I think, from this time, I hope we strictly separate each topic. (I take care it from now)

    1 eevee with principled option

    2 eevee with bsdf option

    3 cycles with principled option

    4 cycles with bsdf option.

    I think there may remain quite a few case which we may need to consider about refraction and fresnel, but as my OP request already solved (EEVEE with BSDF option) for eye mat, (at least now I can see under eye mat behind glass for my problem scene,, so if there will new problem I may divide clear.

    but hope you not say BSDF is only for cycles, or pincipled is only for Eevee.

    about my op scene, principled option not work for Eevee to show back diffuse image. so I do not think, Principled option is better customized for EEVEE.

  29. Log in to comment