Just as an experiment. But I’m not too happy about it. Key points are:
Two manual glass setups in case you want some haze to it. Fresnel to mix refraction and glossy. Splitting it up allows different normals and roughness, as well as color if you don’t want to use volumetric absorption.
Fresnel to blend glass color into shadow. However, the inverted normal needs inverted fresnel.
abs(Z-normal) to mix in edge darkening due to total internal reflection. This is a trick that works well with solid panes of regular green glass to fake that green rim running very low render settings. Here I find it less impressive, as this would happen at the bottom thin rim only, not the full side. It kinda takes it closer to a caustics based reference though. Reason the rim is dark green for normal glass pane, is that light enters, refracts, then get trapped in “infinite” total internal reflections - so when you look at the rim, you’re effectively looking through the whole length (not thickness) of the glass and the natural green tint of glass is absorbed a lot more.
I am afraid I am not following. I am not an advance user. If you could post a printscreen of the setups. If I understand cortectly the first one is the one proposed by @sizzler ?
By the way , it’s acrylic plastic not glass. Not sure if it makes a considerable difference. Just that the green rim its proper from impurities in glass and not in the plastic.
Glass is green, “impurities”, well, ok I guess. Normal glass use is looking through thin sheets so it’s not obvious. The takeaway is that something happens on the edge. Maybe it’s green and shiny because it’s glass? Maybe it’s white and rough translucent because it’s a rough cut in acrylic? Maybe it’s white and shiny because it is a different kind of glass.
The file you provided didn’t come with the wood part, which I expected could have issues with normals or overlaps. Creating my own wood stuff I’m having no issues brute forcing it with caustics (was enabled) and high bounce settings (was enabled). With that, proper brute force now we need to know how the cut looks like. Brute force with enough samples and not too high filter glossy - caustic patterns will still suck, but caustic light transport will be acceptable (imo), and light path tricks shouldn’t really be required.
Snappy:
The underlined stuff to be ignored or remade to suit the actual edge, and to use a proper mask - if helping out the brute force. The image is rendered with brute force, 2000/500 adaptive samples, and as you can see, shadows are forming. Not present in the 2 sample viewport.
Instead of masking effects on the main material, you could use a different material on the rim. For fakery, all the other stuff use white transparency without accounting for fresnel. While I do that, it it still not a perfect solution. It’s something I do, well aware of the limitations. If you want hyper real, don’t fake it.
Above is updated with correct image. The render settings are shown.
I believe I turned off clamping (I never clamp), increased samples to already enabled caustics to do a more proper job, and increased the max bounces although I don’t think those amounts are required.
Your image showed some strange bending, and I don’t know why. You only shared the glass piece which didn’t really reveal much. You referenced some “kitchen stuff” but no images of what you’re actually trying to achieve.
There is no real difference glass vs acrylic, other than acrylic can be a bit more hazy (thus I’m using two manually setup glass shaders), may have a different end cut roughness, and a more neutral absorption color. That said, there is a limitation in Cycles in that it doesn’t calculate internal reflections as part of refraction, whereas some other renderer does. I’m not using those, so I can’t say what the difference would be.
If its not a bug,why it dont work without mods?Look at the Luxcore example Bruno has posted before,works instantly.
However as you sayed,there is no internal reflection calculation,and i guess that the shader itself dont take the thickness into the calc.The calculation of the fraction of light is quite simple and should be done by the shader itself.
Like reflection,refraction (not only the bending but also the amount of light goes through the glass due fraction),with the possibility of internal reflections,And the light that refracting at the exit of the other outside of the glass mat.
If these would be implemented into the glass shader, we wouldnt have a reason to talk about here,it would works as it should.
Btw Interesting setup i have to look at this closely.I guess that with the chair model, the bruteforce causics are too much away from the ground to give sharp shadows.
What are your thoughts with octane? I am seriously considering buying a membership and use it as my main render in Blender. I believe it can calculate these type of materials easily and I kind of like the look the renders have. I checked a few product design people working with octane like Zarki and it looks quite nice.
Just my 2 cents, I think it’s a waste of money unless you are having render time issues or you see a specific functionality it has that cycles doesn’t, which isn’t a whole lot to be honest, or it adds significant value to your own personal workflow. The 2 engines produce such similar results that unless you are just having repeated problems using cycles and you just click with octane, I just don’t think it’s a huge upgrade besides the render times. I mean, octane is awesome for render times. But, if you have an optix card (if you dont then wait for the nvidia 3000 series. Don’t waste the money on a RTX 20X0 card) then you have optix denoising and that will save you a lot on your render times. Like I said. I just wouldn’t stress it or over think it too much. If you try octane and it feels natural and does what you want and speeds up your workflow, do it. I personally am of the belief that you can’t really put a price tag on the importance of a smooth uninterrupted workflow, which is why I like maya and arnold, because to me something as simple as key bindings, better graph editor, not crashing while entering edit mode, and anisotropic SSS are worth the money to me. If you are not sure if octane is adding any value to your workflow then like I said, from a technical standpoint you won’t likely see a HUUUUGE upgrade from cycles with it. Although you might not be having this glass problem with octane so who knows
What mods? LuxCore can do bidir stuff, Cycles can’t, and the argument for not including it is we would loose a lot of goodies that are incompatible with bidir. If you want to brute force it, you need a lot of samples. As you say, sharp shadows become blurry.
And if we need to fake shadow handling, while we may be able to get it closer to, we’re never going to end up at ground truth. Adding fresnel to transparency based shadows for solid objects is tricky. I deal with double reflection replacing the glossy component of the glass with transparency based on backfacing. If using mask to do rim separately, you also need to do some backfacing tricks to the rim shader to let it propagate through TIR to get closer to caustics based.
Look at Hikmets responses in the TIR thread for more info. Apparently there are things we cannot do in Cycles regarding refraction producing black - it’s above my head, but I don’t think it’s relevant to what is being attempted here.
Thank you so much for your extensive response. I agree with you in terms of integrated workflow, thats one hard to beat. My current situation: I am getting more and more happy with Blender. Have been using it at work for modeling and I love it. I am still not super comfortable with cycles. I do like it a lot, but I feel often I need to ask here in terms of nodes and how to achieve certain material. People are great sharing their approaches, but as you can see with the @CarlG proposal for the acrylic, the node setup needs to be advanced and sometime I need to deliver in an specific date. Honestly I do not have his knowledge of physics and sometime delivery dates are tight. Thats the reason I jumped to luxcore to try. I must say it solved the table in literally one click. No need of light pass nodes or adding more than 12 bounces in the scene to calculate the refractions and light for that plus the beautiful caustics. The downside, from my point of view, it is a bit slow to work in the viewport and maybe there are less people using it…so it makes a bit harder to find tutorials or videos to learn, although there is a user doing a great job supporting luxcore with really explanatory videos.
Now I am trying to create the velvet in luxcore and then I find way easier to do that in cycles…so I am finding myself researching how to do the velvet in luxcores, while cycles have so much information and great results for it. I am thinking in octane cause the insane amount of videos to learn and the beautiful render it gives fast.
Still I am trying to solve everything in luxcore for this project. I find the light beautiful and the materials super easy to make in most of the cases. I used for a long time Keyshot, I do not have any idea if its a physical accurate engine, but I must say…unbeatable in ratio learning curve- render quality. You press plastic and boom…you have beautiful results. Of course Keyshot is meant for people like me, Industrial designers…so its not the same product as the other ones…which are way more powerful.
Anyways I feel Octane has the capability of dealing with transparent materials and caustics and being really well integrated to blender…maybe i just need to give it a try.
Thank you so much for sharing the nodes! Can I ask how did you learn this? I feel overwhelmed by the knowledge you have in terms of light and materials. Thanks a lot. I am doing this project and researching while doing it with cycles and luxcore.
What mods?like your builds?The limitations of Cycles are well known,but this is not the point.It was a discussion months ago, where Brecht sayed that he maybe implement some transparent shadow function into the glass shader.Even if the result is more artistic ,or like builds we are trying now,we would have caustics right out of the box.
Transparent shadow should be a function of the refractive part of glass, as well as the refraction shader itself. If it’s gonna do fake caustics stuff, I’d like to have control over it.
Materials is what I’m mostly into, but I’m not an expert after 30 years (1990s) of being into CG materials. I’m still watching tutorials, and I can highly recommend Erindale on youtube which gives a very solid foundation on how to manipulate data channels (coordinates/vectors, colors, values). To me, this foundation is more important to learn than getting “correct and sharp caustics”, and many of the methods may not be available in other render engines. I’ve tried Lux, but just barely, and while the caustics are great I can’t do the textures I want.
As for the shading, it’s about knowing the limitations and the tools available to get around some of them. When setting up fakery like this, I tend to render out a simplified version at high sample count as a reference, then trying to cheat the system to get closer to that reference. I.e. Cycles don’t have means to do proper cloth shading; the Diffuse/Velvet shader are isotropic. So you can’t “shift” the shading based on lighting direction. Lux has a different approach to velvet, but I could never figure out the controls. As there are no way to do it, we have to settle with “good enough” despite the limitations. The same thing for refraction shadows. We can use caustics with tons of samples, but that just isn’t an attractive solution. Even 5000/500 did not produce acceptable results brute forcing it, but 500/50 would be close while faking it and accepting less accurate shadows. Side by side, you’d see the difference, but you (and client) might not be able to tell which one is the fake one without some solid knowledge.