Glass issue and trasparent vs holdout shader

Hi to everyone!!!
I have a problem with the transparency shader. I need to use it combined with the glossy one, mixing using a fresnel factor. Unfortunately I keep getting the same result…an annoying black area. ON the other hand, with Holdout shader everything seems to work correctly. I’m attaching 4 screenshots that I hope will explain better the issue.


And all this, because I need to resolve an issue that I have in a scene. I have a big surface made of glass, that is in front of all, this surface affects to much the render time and the level of noise.


Is there some sort of trick to resolve that problem? I have already play with light path, but nothing seems to work. I think that the noise is caused by the refraction properties of the glass shader. Can someone help me?

Thank you

I believe the black part is schnell’s window (imaging underwater shot shooting up into the sun about perpendicular to the surface). The options:

  1. Flip the normals.
  2. Instead of fresnel IOR 1.45, use it’s reciprocal, so 1/1.45 = 0.68966.
  3. Use layer weight/facing instead of fresnel. Fresnel 1.45 is approx facing^5 remapped to 0.04 - 1.

Note that transparency based glass can never get a frosted look. That would require more expensive refraction, which in turn requires a limited solid (whereas transparency work with single sided flat planes if you want it). Both can have volume absorption, but obviously volume is required.

Hi Carl, thank you for the answer.
Yes, actually, it could be schnell’s window.
But why does only appears with transparent shader? I aspect to see similar behavior with refraction bsdf also!

So, I tried your suggestions but the first two didn’t work for me unfortunately…
about the third one, I had noticed that Using layer weight/facing instead of fresnel could resolve the problem, but the IOR of the two seems to be different and do not correspond.
I can’t understand your solution:
“Fresnel 1.45 is approx facing^5 remapped to 0.04 - 1.”
Could you explain differently? Or even better posting a screenshot!!

And what about my second issue?
Do you have any solution?
The two problems do not have to be solved necessarily with a single solution.

This is very clear, but does not resolve my second issue:
“Note that transparency based glass can never get a frosted look. That would require more expensive refraction, which in turn requires a limited solid (whereas transparency work with single sided flat planes if you want it). Both can have volume absorption, but obviously volume is required.”

I have this great glass surfaces, like a big windows that create a sort of box inside which there is the rest of the scene.
How can I mantain this windows without compromising the render quality?

Thank so much!!

Yes it is! I quickly replicated a scene similar to the one you described!!


reference photo:


Blending using layer weight/facing shown in the top of image below. If you compare the output from the fresnel vs the layer weight based one (using node wrangler), they are practically identical. The red power node can be adjusted to give more reflections (<1) or less reflections like glass with anti reflective coating (>1). Not sure what you mean with IOR being different, it should have no effects on bending light since using transparency, other than in blending curve.

The reason is that refraction shader handles this automatically; from inside water (normals facing away from you) you get the inverted effect. And I’m sorry, I forgot to mention in option 2; use reciprocal IOR for backfacing normals if you have actual thickness on the glass, and regular IOR for remaining normals.


Without part of the project, it’s hard to assess what is wrong with it, causing noise etc. But I tend to use “IsShadowRay” with a secondary transparent shader (at the end), where manipulate the color for some fake shadow casting effects (transparency shadows must be turned on though of course).

Ok, now it’s way more clear for me!!
I’m not a math expert, so I find it hard to understand some steps, I would like to thank you for sending me some explaining screens!!
I replicated nodes, and now everything work nice and smooth!!
Waiting for your answer I tried a more “artistic” approach that I’d like to share with you.


Regarding the problem with my project I might share it with you but I don’t want bother you…
There are not problems with the caustics anyway, but using a glass shader to have some refraction all the image behind that windows slightly degrades with a consequent increase in the render time to clean from noise.

Thank you again Carl

I just remade my glass material, and now has some smartglass features, including a warmer/colder tinting control (done to the central layer of glass with electricity, but not exactly common yet). Orientation of local z coordinate is important to Z Normal Egde Darkening, which can be handy for standalone sheets of glass and you don’t want to use refractive glass.
http://pasteall.org/blend/index.php?id=43895
GlassShader.ComboGroup which is the main thing looks like this:


Oh nice, Thank you!! It looks great and complicated :eek: !! I’ll experiment in my project, and I hope it can resolve the problem.
It looks great for the large plane surfaces, not having refraction work to do. But a little bit unrealistic for “complex” objects.
Did you happen to see “Prism – Fast & advanced glass shader for Cycles” on sell on Blendermarket? What do you think!?

Use the real output if you need refraction. With right settings it should produce the same as the glass shader, complement with effects on the transmittance color (quick example in the material) if you need fake shadows and/or caustics. I have a nodegroup for that but it only does shadows well, I believe a better one for caustics was recently posted here, but I haven’t tried it yet, so I didn’t bother including mine.

No, haven’t tried it. I’m guessing it’s three refraction shaders with slightly offsetted IORs in RGB to create some fake dispersion effect. I never have use for that kind of stuff. Refraction is just too expensive for me, and I’ll happily use the fake output version for nonimportant (yet dominating) objects or during building the scene to prevent preview crashes. Previously I had two versions of glass (transparency based and refraction based, but transparency based was layer weight based as I didn’t know about the 1/IOR thing at the time), I just combined the ideas into a single group with two shader outputs to choose from. Come to think of it I forgot to add absorption, will do that later.