2
$\begingroup$

OK So I've been trying to make a simple scene of my room as a bit of practice but I've run into trouble while doing the windows. Whenever I place glass in them it just doesn't act right, to the point that even leaving the widow "open" gives a better result.

I decided to do a little test on how the deafult glass behaves (Principled BSDF with Transmission on 1)

First I made a reference render with no glass. My scene is just a narrow spot light pointing down. I added a volumetric cube as well to help visualize it. enter image description here As expected the "Laser" makes a dot of light on the ground.

Now here is where things get wierd. When you point a light at glass what do you expect to happen? You expect for it to show up on the opposite side as glass is seethrough, perhaps with a bit of a reflection on the glass it self. Well, here is what happens in Blender Cycles: enter image description here Nothing comes through to the other side!!!?! Not only that but look at that harsh shadow dropped by the glass, that's something that just wouldn't happen in real life. There should be some shadow where the edges are but other than that considering this is an unrealistically 100% pure glass there should be no shadow in the centre at all. The only thing that's there is the desired reflection.

This is the problem I was having when making my scene. I would put the glass in the windows and suddenly the scene would get really dark and you wouldn't see those squares of lights that windows often produce...

What the hell is going on there. Isn't Cycles supposed to be a physically based renderer!? How can it fail to render glass so hard. Room windows are one thing but this would entirely screw up so many other renders with more complex glass shapes...

Or am I just incredibly stupid and doing something wrong here.

$\endgroup$
6
  • $\begingroup$ Rendering engine is supposed to act like rendering equation. But when it comes to some complicate thing (volume, glass), the equation need some specified algorithm to reduce the computation work to make it render-able in current hardware. $\endgroup$
    – HikariTW
    Feb 26, 2021 at 5:24
  • 1
    $\begingroup$ That makes no sense tbh. Cycles is an offline renderer, performance is nice but ultimately what matters more is its realism. Optimization options that reduce realism should be something you can enable not something that's enabled by default or hardcoded. Besides it's not like I'm asking for somthing impossible here, we've been able to render glass properly with other render engines for at least a decade if not more. The fact that the base glass model in Cycles doesn't let light pass through and acts like a solid wall is a bit ridiculous if you ask me. $\endgroup$
    – Geth270
    Feb 26, 2021 at 9:14
  • $\begingroup$ Yes, and what if you change the threshold inside the render panel with all those bounces and caustic value? I do encounter the same problem that Cycles Glass is hard to make light go through it, and tweaking those parameter kind of make the issue more severe. $\endgroup$
    – HikariTW
    Feb 26, 2021 at 16:54
  • $\begingroup$ The thing is that Cycles use probability distribution to "simulate" that render equation. When a glass came in, the complexity of the distribution was changed and it might surprisingly not able to calculate it with the hardware structure. Not only because time but also precision, memory space and maybe algorithm/user setting. Take the example of fireflies, those white dot is not realism at all and can not be fully eliminated by rendering time. This is rendering system limitation IMO. $\endgroup$
    – HikariTW
    Feb 26, 2021 at 17:01
  • $\begingroup$ If you want glass with caustics, there are renderers using methods like Metropolis Light Transport that are tuned to these situations. Suggest LuxCoreRender. Renderers have to pick their battles, and performance is a major consideration. See Disney's physically "plausible" renderer $\endgroup$ Feb 26, 2021 at 21:37

2 Answers 2

1
$\begingroup$

A bit late, but it works fine for me

enter image description here

$\endgroup$
2
  • $\begingroup$ Absolutely. The key is the 10000 samples and light caustics. The original example had far fewer samples (can tell from the very spotty scatter of the ray) and probably had caustics disabled. That’s a really nice example of it working as can see the reflection, transmission, and roughness scattering. $\endgroup$ May 10, 2023 at 14:05
  • $\begingroup$ Yeah, no. The default glass shader in Blender is just fucked and I can't believe it still hasn't been rectified after so many years (it's been like that long before I posted that question and still is). Results like you showed are possible but this is not the default settings. Really for anyone who finds this I recommend watching this video on how to deal with glass in Blender - youtu.be/Sv2wqwsvx-8 It's no silver bullet but at least it explains the idiocy of Cycles glass and how to work around it. Physically based renderer shouldn't take mental gymnastics to render glass, IMO. $\endgroup$
    – Geth270
    May 11, 2023 at 20:10
0
$\begingroup$

I can't really speak to this laser situation, but if you want no shadow at all you can do something like this:

enter image description here

You can decrease the Color value of the Transparent BSDF to control the amount of shadow.

$\endgroup$
2
  • $\begingroup$ also - blender.stackexchange.com/questions/204802/… and I recommend this youtube video - youtu.be/Sv2wqwsvx-8 the volume mix is very low and he can be hard to understand, but there's some good info here $\endgroup$ Feb 26, 2021 at 6:20
  • $\begingroup$ I've already tried something similar but this messes up situations where the shadow should be there due to caustics. $\endgroup$
    – Geth270
    Feb 26, 2021 at 7:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .