How to Limit Multiple Glass BSDF Reflections

Hi smart people,

I’m new to 3D/Blender so forgive me for the beginner’s question.

I am working on a wine bottle product viz and I get a really annoying 2nd reflection on my Glass shader. The first reflection is from the outer surface (I want to keep that) and the second looks like it’s from the inside surface (I want that one to go away).

Pictures of real glass have only ONE reflection.

I do have a second mesh object (the Wine itself) INSIDE the bottle, and as I have seen recommended in various tutorials, I made sure to expand the edges of that mesh so that it lies IN BETWEEN (intersecting) the boundaries of the glass wall of the Bottle. However, this doesn’t seem to affect the double reflection, as I have tried rendering with the Wine layer inactive.

I can’t limit the ray visibility of the mesh lighting to not show transparent/glossy bounces because then of course it wouldn’t illuminate the subject properly.

I’ve attached the render result and node setup of the Glass BSDF.



Could that be a normals problem? Have you checked the interior faces of the bottle and made sure their normals point the right way?

this looks like HDRI reflections!
you could try to change the MAP

or add a mapping node and rotate the map a little!

happy bl

Yes, all normals are facing out. I actually was wondering whether I might have to invert the inner normals to hack the problem. Not sure if that would work anyway.

I am not using an HDRI map to light this. It’s simply 2 plane meshes set to emit.

have you tried two materials on the bottle mesh? the one you have on the outer part, and a doublicate material with an addional lightpath node limiting away the reflection. to do this, go into edit mode, select the inner part, go in properties panel, material, click little plus and assign. then in object mode edit this second material.

Try swapping your “Is Shadow Ray” for the “Transparent Depth” option of the same Light Path node.

Thanks for the suggestion! But it didn’t work :frowning:

If I also swap the inputs of the mix node, then I get one reflection, however it no longer looks like a glass bottle because most of it goes transparent/black.

I haven’t tried assigning multiple materials yet. To me this seems like a hack, and there should be a way to make the material function properly since the BSDFs are built to model physical reality. I guess I could create a second material, or maybe it would even work to make the inside transparent? If I can’t figure out what I’m doing wrong then I might have to do a hack like this. Thanks for the suggestion!

a few remarks that might help: after a little googling and some thinking, the double reflection seems entirely logical and physical. since the glass has thickness, so 2 boundaries, it reflets some of the light that hits it from the outsidem and also some of the light that penetrates it and crosses over to the wine inside. in that sense, the result is physically accurate.

so why don’t we notice it more often?
first, phtographers go to some lengths when setting up the shots to eliminate unwanted reflections. but more importantly, you set the roughness of your glass to 0, which doesn’t represent reality. i think when you start playing with your glass roughness, you will start getting better results.
so how to eliminate the double reflection? i would try seperating the material to inner side and outer side, and setting different roughness values to each. i also think this is the reason we don’t often see sharp double reflections in real winebottles. one of the reflections is blurred because of the roughness (i think the inner reflection is blurred, but i’m not entirely sure).

as an aside, if the color is the same on both transparent shaders, you can simplify your node tree like this:


Funny you should mention that because I did have it set to about .005 before. Much beyond that and you look the sharp outer reflection, and such a small amount of roughness doesn’t do much to the inner reflection. You are right though that I should put it back.

Oh, yes I love anything that allows me to have a more elegant and simple node setup! Thank you for the tip, I will adopt it immediately!
The math node is always a mystery to me. Or is that an RGB mix node? I don’t understand the difference. :confused:

The math node is always a mystery to me. Or is that an RGB mix node? I don’t understand the difference

this is a math node. :yes: rgb mix nodes have a fac input to control the amount of mixing of the two color inputs. math doesn’t. also, rgb mix expects to get color input (r,g,b), whereas math expects one value only.
that said, you can plug color into value, vlaue into color, and even color into vector and vector into color, and the nodes will interpret them fine. as far as i know, only the shader sockets are specific, and do not accept anything else.
so i usually see the main difference between math and rgb mix nodes as a matter of the functions you can use with each one. some of the functions overlap (multiply, divide…) and others not (sin, screen…).

You are right though that I should put it back.

i would also note/warn that if you chose to use two materials, you will encounter a problem with the volume absorption. you will need to duplicate the bottle (and parent it to it’s first copy), assign a material with the volume only, so it will register correctly the thickness of the glass, and in the first duplicate assign the two materials as before, without a volume component.
i hope that is not to confusing…