It’s my first time experimenting with glass materials and I’ve already run into serious problems. I made a simple wine glass with just a glass shader ,placed it on a diffuse plane ,placed a cube on the plane to see how it looks through the glass ,set up a lightsource and then I got this :
What on earth even is that and how could I possibly fix it ?
I feel like this is one of those big unsolvable hardware related issues ,cause I’ve seen nobody getting this kind of absurd display ,but still any help is greatly appreciated ,as I have failed miserably in every single one of my attempts.
Please ALWAYS supply an example .blend file with any support question.
Using the glass shader means having to build physically plausible meshes. Without access to your mesh it’s impossible to say what might have gone wrong in your case.
Not sure what you mean by “obscured display”, though… Care to elaborate?
Is there liquid in the glass? If so, what did you expect to see in the refraction - other than the cube, the red floor and the (obviously grey) environment, all upside down?
I can’t say that I see anything “completely wrong” in your render…
Correct. The normals of the inside portion of the glass are flipped, which you can spot easily because of the different shade of grey in the viewport or by enabling display of face normals.
That’s why it looks as if the glass was filled, because Cycles “sees” the inside as a massive block of glass and not as an air-filled empty area.
And that’s what I meant by only using physically plausible meshes with refractive shaders:
Your mesh literally turns “inside out” because of the partly flipped normals, which is a physical impossibility in real life objects. As a consequence Cycles can’t keep inner and outer surfaces apart any more.
Excellent! Seems that it really was the normals that messed things up! Thank you guys a lot! I have one more question though. I suspect that the magnitude of the normals has something to do with shading as I downloaded a wine glass scene and I added a glass I made myself as well ,of very similar size and shape to the original. So after checking the normals of the glass I made ,I rendered both glasses with the same material ,but they looked significantly different. I only got them to shade similarly after greatly differentiating their shader’s IOR values. So ,when I checked their meshes I saw that the normal vectors of the original glass were way smaller than the ones in mine. So in the end ,do normal magnitudes affect shading and if so ,how do I rescale them ? Again ,thanks for your spot on advice !
The normal is “just” a vector pointing in one or the other direction. Its length is completely irrelevant.
If the length of the normals’ display differs on objects with similar size, this might indicate that one of those objects has been scaled in Object mode.
Check the scale of the glasses in the “N-panel” (right side of the viewport). If the scale is not 1.0/1.0/1.0 (as it should always be in the modeling phase), select the respective object and hit Ctrl-A > Scale to apply all Object mode transforms.
An “Object” in Blender is like an invisible container for various contents, e. g. meshes. If you scale in Object mode, you’re scaling the container, not the content. Therefore you see a distorted version of the content, which might be grossly incongruent with its actual state. This will affect rendering, texturing, modeling and so on. See here for further details.
I’ve had my suspicions about object scale factors ,yet it seems that I also did in fact forget to neutralize them prior to rendering. Things are much better now. Thanks a lot for all the on-point and immediate help!