Diffuse translucency way too difficult to set up in Cycles

Bumping this thread again. It’s really important to solve the odd fresnel behavior in both Eevee and Cycles because pretty much no one knows about this corner case yet almost everyone breaks their teeth on it.

CGCookie has released a recent video about Glass Materials in Eevee, and check this timemark:

I mean, if even CGCookie, one of the largest Blender tutorial creators does not know about the ugly workaround one has to do to actually make Fresnel node behave correctly:


…then how can you expect average user to?

6 Likes

That’s not correct for thick glass. This workaround is only for thin glass. 2D geometry or bubbles.
What it needs is a thin optics checkbox.
In the video, these models have volume, so using Fresnel straight out of the gate is technically correct.

That being said this isn’t the only issue with it. It also ought to have a roughness input which requires a different overly complicated workaround to achieve.

Hi,can you expand the above node group to include specular and normal map ,add all the map input in Principle shader would be best ~

I also have problem with Translucent, it affect my diffuse that turned to the Sun…
Example:
with Principled only shader


with Translucent 50/50

See difference? It add translucent for behind of the Sun but lower diffuse level.
How to handle this situation?, I want diffuse not to change, and behind the Sun my petals were translucent.

Add:
I only could fake it with boosting value with Hue node…

You can revert to regular Principled BSDF based on the side (normal) of your mesh, as in here:

Another method i used in the past is to not worry about physical correctness and use the add method, dimming the translucency as much as it looks good:

But that’s physically incorrect and won’t work when the direct light will hit a backface.

Which one of the two ?
(oh, actually both are incorrect I know)

And with backface it only work for mesh that have face turned to sun and backface is opposite, but if backface is turned to the sun and face is opposite it have incorrect calculation (hope you understood me).

So for now fakes with diffuse value works the best for me…

I do. So you have a lot of sunflowers and their orientation may vary, right?
Give the second setup a test. Again I know it’s not correct, but sometimes it gets the job done.

1 Like

Tried second setup.



it lighten diffuse shader and it need to correct with hue node =)
my God, how this is hard to setup…

I think Translucent need some rework.
I thought I did something wrong, but now I see that is something odd with Translucent.

Thanks for helping!

But that’s physically correct behaviour due to the conservation of energy. If 50% of light gets scattered through the back of the surface, that means that only 50% is reflected, and that’s why the front side appears darker. So there’s nothing wrong with translucency in this case.

I guessed about it. But still hard to achieve real looking.
I think the main problem that in real life we have no surface with 0 thickness, thats why Translucent behave like this in my case.

The best option for me it’s if Translucent shader had some kind of compensation (zero thickness compensation) option for original diffuse.
Because first you setting up Principled/Diffuse shader, and then add Translucent to it, which change your diffuse setup and you need tweak it after.

I don’t think it’s a good solution to add physics-breaking options to shaders. Proper approach is to set up your material with translucency from the start and then adjust light, exposure and textures to get the desired result.

To get this desired result you need every time switching translucency on and off to see real diffuse which is time consuming operation…

All that thin-film does is to match the IOR on both sides of an interface (implying both sides are outside) - It does nothing if you aren’t even using fresnel.

1 Like

That is a correct workflow. Albedo should be probably just boosted up to compensate the ‘look’ .
Btw @APEC what is going into the Fac of the mix shader node?? That is not my setup. That should just be a (usually low) value, driving how much translucent shader to add (in order to limit the energy conservation breakage, but still feel the effect)

Btw, the original poster’s setup was a tad over-complicated. All you need to do to do this properly is this

Still about four more nodes than ought to be necessary, but it’s not quite so bad.

A full setup would require more though. Ideally you want to use:

  • two albedo textures (one for the front one for the back - they will look different!)
  • two roughness textures (front / back)
  • two normal maps (front/back)

So a full node tree might look something like this (I don’t have the necessary maps to make it work, so I’m only showing the node setup. I may have flipped an input here or there, can’t test):

The Mix node going into the Fresnel Normal is there to emulate the effect roughness has on the fresnel gradient. If a material is very rough, effectively you are facing more of it heads on. So instead of the normal direction, in those situations you need the incoming direction.

Finally, I’m not sure if my logic with the albedo map is correct here. I think that’s right, but you might need to actually put the opposite color into the Translucent BSDF. Like, use another Mix node like ALBEDO but invert the inputs and plug that into Translucent instead.
On short notice I found no reasonably quality texture that has both the front and the back side on it for me to try it out.

5 Likes

it’s just a B/W map to hide borders

Summary

I like your suggestion!

@APEC can you share your full node setup how you acheived this? Did you manage to solve the borders issue? It seems like an alpha problem

Hello,



I have no issue with borders. The last screen was with disconnected node in Mix Shader to point how I hide that borders.