Light path defaults and presets

Something I’ve often wondered is why the Cycles light path defaults do not align nicely with the existing presets?

Defaults Limited GI preset Full GI preset
max_bounces 12 8 128
diffuse_bounces 4 1 128
glossy_bounces 4 4 128
transparent_max_bounces 8 8 128
transmission_bounces 12 8 128
volume_bounces 0 2 128
caustics_reflective True False True
caustics_refractive True False True

It certainly seems like the defaults are meant to be generally useful for everyone, at a final “production” quality even, based on how “high” they are compared to “Limited GI”. And to a lesser extent because most users are completely unaware of presets in general so the defaults have to work well for most things.

However, the oddball out is that that volume_bounces setting.

Would the following proposal be acceptable as a patch?

  • Change the current coded defaults to set volume_bounces = 2 for new scenes (no versioning; old scenes will remain unchanged)
  • Change “Limited GI” to use 0 for volume_bounces
  • Create a new “Default GI” preset so that users can return all settings to defaults if they tweak things and want to go back (downside is that the settings will need to be kept in sync)

This creates the following progression of presets: Direct Light -> Limited GI -> Default GI -> Full GI

No. It is not. Volume Bounces are very costly.
Setting them to 2 should already produce an explosion of rendertime.

So, why are there volume bounces in limited GI setting ?
Because global illumination means that light comes from bounces.
So, if there is no bounce : there is no global illumination.
Somebody could complain that a preset about delivering GI is not delivering what is expected from it, if volume bounces value was zero.

You’re right in that it’s quite a bit more expensive. Especially the first bounce (the others get cheaper as rays run out of energy and/or terminate for other reasons):

A test scene with 3 smoke sims filling the majority of the frame:

bounces 0 1 2 3
time 41 sec 61 sec 75 sec 81 sec

I still think it’s a bit weird how the defaults are positioned all things considered. They allow more overall bounces and even enable caustics. This coupled with the recent push for more volume object support leaves the defaults in an unfortunate position.

Can’t dismiss that performance hit though… so might have to leave this be for now.

These all seem fine, a patch would be welcome. The only one I’m not sure about is the default because of the performance.

Not sure 2 is a good volumetric default value,because the scattering, with too low bounce value, appears to dark.
The bounce should be start at 5-7 for a white scattering.
Here you can see a comparison of the volumetric setting,with a Disney VDB cloud for reference.

On the other hand, anyone feel like 128 is way too high for the Full GI? I haven’t come across any production (animated or still) where that is needed. If the user needs 128 bounces, they can dial it in manually. “Full GI” IMO should still render at a reasonable performance.