Seperate sampling values for direct and indirect bounces in branched path tracing mode?

Is it feasible that when using branched path tracing, that each ray type (diffuse, glossy, transmission, volume) could have seperate user defined values for direct and indirect samples rather than one value for both?

I’m thinking that the direct pass is always cleaner than the indirect, so the ability to enter higher samples for indirect than direct would save quite a bit of processing. I’m not sure if both direct and indirect are gathered from the same bounce though, or if each gets it’s own bounce.

Alternatively adaptive sampling on a per pass basis in branched path tracing mode could stop direct samples whilst continuing indirect?

Diffuse, glossy and transmission rays are used by both direct and indirect light. Since the ray is already being traced, there would be little benefit to using them only for indirect light.

Thanks @brecht, that’s what I thought, but then I found that the sub samples settings only affect the indirect passes. For example below, the direct is identical regardless of increasing the subsamples, but the indirect becomes completely clean:

36 total AA samples, 1 diffuse subsample ( 36 total diffuse samples):

diffuse direct pass

diffuse indirect pass

36 total AA samples, 100 sub samples (3600 total diffuse samples):

diffuse direct:

diffuse indirect:

I found confirmation that this is how it’s supposed to work by alex petrov on youtube:

How come the direct pass doesn’t clean when increasing samples?

Direct lighting is a combination of BSDF samples and light samples. There are per-light settings to control the number of samples.

ahhhh, makes sense, thanks.

@brecht, one last question, is there any information exposed through python to get the noise levels of individual passes (either from the viewport rendering or from the f12 render result)? Or is the only way to save out the passes and analyse with some custom code? If custom code only, is there a library in Blender’s python folder aimed at image analysis (or another you’d recommend for this purpose)?

Cycles doesn’t track any kind of “noise levels” information for individual passes. Blender does not ship with image analysis Python libraries either.

1 Like