Getting lots of noise with my skylight lit scene

I don’t have much experience when it comes to reducing noise and optimizing the number of samples I use when rendering a scene. So I’m wondering if a scene like this would make sense to get this amount of noise rendering with 1000 samples?

For some additional context into the scene, it’s lit with the world background which uses the Nishita sky texture node, and the skylight is setup as shown below using the glass material that’s also shown below.

If the amount of noise that I am getting makes sense to be getting, would there be a way to reduce the amount of noise in this scene without increasing the sample amount too much?

I can tell that using a glass shader significantly affects things, though I’m unsure of a workaround for lighting through the skylight.

I am not sure if this can help, but your glass node set is not right.
It should be like this:

You did not mention any light portal. Did you use them?

1 Like

Can you get away with completely hiding some of the glass and get a similar enough render?

Sometimes it is even faster and less noisy to use a mix of glossy shader and transparent shader instead of the glass shader.

Sometimes more light equals much less noise. This could mean putting lights in the dark areas to fake light reaching those areas. It could mean drastically increasing the main light source more light actually reaches the noisy areas and then reducing the exposure in the color management settings to get a similar looking render result.

If the only light entry point is the sky light, use an area light set to be a light portal. It might also be possible to get an almost identical render by using a regular area light with a light falloff node and blackbody node for color instead of the world sky texture.

2 Likes

I don’t understand the purpose and use of the Light Path node. I want to understand Why and How of this technique.

First, what is the goal of doing this? Is it to make the glass transparent to Shadow and Diffuse rays and glass to others? Why do that?

Second, how does this work? Is it like this?

Shadow  Diffuse  Add  Result
0       0        0    use glass bsdf
1       0        1    use transp bsdf
0       1        1    use transp bsdf
1       1        2    ? is this possible?

So it says, If (ray = shadow or ray = diffuse) then shader = transparent else shader = glass?

Well, in terms of the conclusion it’s correct, but i think the math you are applying has a conceptual problem because the add is not adding light but adding paths. The total light in the scene is divided in a bunch of different paths and when you add a path to the shader you don change the amount of light but the paths to take in account. You could make this until all the passes where taken and the amount of light would be the same, so yes, it’s possible.

1 Like

When you use glass shader through these passes Blender tries to calculate caustics which is a big source of noise and also makes the render times much larger. The light passing through the glass material under these passes also turn the scene darker because of the refraction and the caustics nature, but thin glasses like windows should not project caustics, so we need to tell Blender that.

The shadow path is responsible for the refractive caustics and the diffuse for the reflective ones.

If you simply deactivate caustics the result is even worse.

Thanks @Calandro. Looks like Blender needs logical operation nodes to do OR, AND, etc. This sort of thing would be so much cleaner with them.

“Is Shadow Ray” etc. to me implies that these are exclusive. That a ray has only one type such as shadow, diffuse, etc. It can’t be both a reflection and a glossy ray for example. If I understand you one ray can have more than one of these types or characteristics.

So turning causitics off in Render Properties->Light Paths->Caustics is not good?

:warning: Rather than sidetrack the OP’s thread can you point me to some material about these things that I can study?

It will depend on the bounces that specific ray does. But once a ray passes through a glass material it becomes shadow ray, if it bouces back it can be or diffuse, or reflection. Diffuse as I understand is the light that is scattered in all directions influencing the global illumination and reflection are those rays who “bounce back to the camera” giving the reflections of the scene around that object.

I will search for material about that to point you at it.

1 Like

There’s no better way to explain why that is terrible than showing the result.
With caustics ENABLED:


With caustics DISABLED:

An excellent reference video to understand the Light Path node:

The problems with the glass setup he made are:
1 - Translucent material is not a good option to filter the light of thin objects like windows cause it scatters the light in a way windows should not do and it can be a source of noise as well. It can help to fake the caustics in thick objects like in this example,

but the test i did it took one second more than with the glass material alone and the result was the same. Maybe, it can be useful for more complex objects to fake caustics, I don’t know, but definitely not windows.

2 - Also he connected the translucent material to the reflection light path. This vanishes all reflection of the glass material and has no effect on the reflective caustics.

As I said, for windows that setup is not correct and can be increasing the render times and producing more noise, besides of destroying any reflections the glasses could have.

1 Like

If you will use Compositing Denoise, 768 to 1024 samples is enough for this scene.

Don’t use “Caustics”. Your scene has not need caustics.

1 Like

The only way of disabling caustics is if he corrects his glass setup. The way it is the glass will project only black shadows when caustics are disabled.

Aren’t there fast fake glass alternatives that don’t involve the actual glass shader and caustic setting becomes irrelevant?

For this you can create your own complex setup or for simple setup (only one node) you can use VSHADE. And you can disable caustics per material and you can use fake caustics.

I did not say he could not do it, I said he cannot as it is at the moment. I already put a setup for the glass some comments ago.

Yes, that’s what all this conversation is about.

Alright, I’ve worked in some of what has been suggested and I’ll recap the results of them below. I’ve rendered all of these with 1000 samples and have included the render time (as blender displays them) for comparison.

Render 00


Using the glass material setup I had.
2:47.22

Render 01


Using the glass material setup Calandro suggested.
2:58.57

Render 02


Now having also added a light portal thinsoldier suggested.
3:07.86

Render 03


Now having also disabled caustics Hikmet suggested.
2:51.17

Render 04


Now having the small lights in the ceiling turned on.
(500 strength emmision shader)
3:05.89

Render 05


Now having the larger lights in the ceiling turned on.
(10 strength emission shader)
3:13.77

The resulting combination of what was suggested has reduced the noise in the render quite considerably. I am quite happy with the results from the reworked glass material. The one I had was found in the blender manual here: https://docs.blender.org/manual/en/latest/render/cycles/optimizations/reducing_noise.html#glass-and-transparent-shadows
I’m not sure if that one had some other intended use, though I find the difference between what Calandro suggested and the one in the blender manual interesting.

Anyways, I am happy with the amount of noise I currently am getting with the smaller lights in the ceiling turned on, and thanks all for those suggestions.

Although I do also get quite a bit of noise with the larger ceiling lights turned on, as seen in Render 05. I’m not sure if it has to do with the shape of the light or perhaps its location, but I’ll show how the larger in-ceiling lights are setup below.


This is how I have those light’s setup. I think these in reality would be a couple of tube lights behind a diffuser, which I tried to recreate with the light’s material and is done within the ‘Internal light tube - replication’ framed node group. (not shown, but the last image of the larger light is shown in the lookdev being connected to a viewer node from the multiply node in the previously mentioned framed node group.)

I’m not sure if that would affect things as much as the light’s tucked away location, though I’m unsure as to why this adds as much noise as it does.

I believe that the intention of the ‘Internal light tube - replication’ is to reproduce the appearance of a light tube when its visible in a specific render, more than really lighting a scene.

For that purpose I believe you would have less noise using simple mesh lights or area lights at those points. I am quite sure you would have less noise, specially with the area lights. Since you can shape area lights in rectangles and can instance them you could easily substitute all of them having only one light to set up and refine later.

I also recommended the light portals at my first comment. They are quite handy in some situations.

1 Like

Maybe the Max Bounces settings could help. Render Properties->Light Paths->Max Bounces and the Max Bounce setting of each light. The noise looks like it is mostly in areas lit with indirect light. High bounce settings, at least in diffuse, might send more light into those areas.

Somewhere there are settings to ignore light amounts lower than a threshold. Maybe that is removing small amounts of light that would otherwise fill in the noise areas.

Suggestion: Try rendering with only one of the lights. Do that for each type of light. Maybe that will show which is responsible for the noise.

Suggestion: Make a simple mock up of your scene. Just simple shapes forming the main features of the real scene. Simple materials. Experiment with lights and settings there. It would render faster for more experiments in shorter time.

1 Like

Taking on some of the things both Calandro and Splododyne have mentioned, I have come up with these results.

Render 06


Added light portals in the openings of the ceiling for the large lights.
3:23.25

Render 07


Removed the light portals added in Render 06.
Changed the strength of the emission shader of the larger lights from 10 to 50.
3:14.53

Render 08


Replaced the emission material light with an area light set to 100 W.
(Switching the material on the now unused light, to a diffuse shader)
2:56.66

As Calandro had mentioned again about using light portals, in Render 06 I added a light portal under each of the openings for the large lights. When comparing Render 05 to Render 06 though, there didn’t end up being much of a difference when I used the light portals in this way.

With Render 07 I thought about what Calandro mentioned about the framed node group in the material for the large lights that is perhaps redundant to have. I wondered what would happen if I increased the emission strength. Would that have an affect on the amount of noise around where those lights are? To my surprise, it did not all that much compared to Render 05 / 06, though I’m not sure why.

In any case, I also tried out the first half of what Splododyne suggested. Increasing the max bounces for the Total and / or for the Diffuse bounces did not affect the render all too much. I tried at most upping the Total to 24 and the Diffuse to 12, I wasn’t sure if upping them much more would be an optimal option.

I also looked into that Light Threshold option that Splododyne mentioned which I found located under; Render Properties->Sampling->Advanced->Light Threshold. Lowering it further or disabling it didn’t seem to affect things much.

Finally, for Render 08 I added an area light (as Calandro suggested) just in front of the large light (for context those large lights are instanced) and replaced the emission shader that I had for the large lights with a diffuse shader.
This works, though I’m not too sure why the resulting render is quite so different. Is this something that would make sense to happen when adding area lights into this scene?

I have a thought that this might have something to do with the glass shader’s light path node not accounting for the area lights (since the rendered result is similar to Render 00). Though I’m not sure if that’s the case.

These are just guesses, hunches, brainstorming where I’m not sure what any results would mean. Most aren’t meant to stay but are temporary to seek clues to think about.

Try changing your setting for adaptive sampling. On or off, whichever it is not now.

Try not using Nishita or other skies. Instead use some HDRI or just a plain white color for the world background. There is an number of samples setting for the world background. Make that high.

Try a ludicrous amount of render samples like 8,000. Sure it will take a long time to render so not practical but if the noise is much better then think about why.

Check the clipping start and end values for the camera and viewport. Set the end values to not much bigger than the building and the start to not be super small. The idea is to save digits or bits for accuracy instead of large distances. I had strange things happen like coarse particle hair and hairs placed in lines due to using a giant end clipping.

2 Likes