How does value clamping work in Cycles?

Hey, guy. First off thank you for all your work on Blender. My question is does clamping above 6 have any effect in Cycles. I have somehow come to believe 6 is almost no clamp at all and anything above that is… Once again thanks for all the amazing changes in the program.

For some reason I’m thinking above 6 clamping has no effect whatsoever. Maybe a good question for the developers.

Evidently not.


For some reason I’m thinking above 6 clamping has no effect whatsoever.

Clamping acts as a cutoff. If none of your surfaces reflect values larger than that, it has no effect.

BeerBaron, I understand. My thought was it must be on a curve for lack of better term. Where the developers set / reached a cut - off point. It started with a Blender buddy setting a clamp to 7. If it was a slider this wouldn’t even be a question. By the way I’m talking about Direct & Indirect Lighting.

First off, you will only want to use indirect clamping, clamping direct light makes it easy to rob the image of dynamic range.

Second of all, clamp values going all the way up to 25 will have a noticeable effect in reducing the visibility of indirect fireflies (especially if caustics are enabled).

Evidently your post crossed mine Ace. First off for those of us attempting to animate on modest cards clamping both is a given even with baking where we can. The amount might change with the scene but it’s a tradeoff we have.

You comment about clamping all the way up to 25 does have me confused however. I don’t think I’ve ever run across that scenario. As I said a slider might be nice.

Not sure if I understand what a slider would change about the situation…?
Cycles is linear under the hood, meaning it can work with 32 bit floating point values. Amongst other things this results in Cycles being able to use potentially limitless values for the brightness of any calculated pixel.

Setting the clamping to e. g. 6 is just a way of saying:
"Dear Cycles, I know you calculated a brightness value of 144 for pixel number 3,321,989. But please, limit the brightness to a maximum of 6."

Naturally the effect of the clamping will be less noticable the higher the clamping limit is set to. If the maximum brightness of the pixels in your scene does not exceed 5 in the first place, limiting them to 6 will not have any effect. In another image however, this might be completely different.

Which brings me back to the slider idea: If the possible brightness values are potentially limitless, what range/region should a slider have? Wouldn’t defining a random maximum for the clamping (= right end of the slider) be completely… well, random?

Most presentation systems (tv, cinema, print etc) have a maximum relative brightness and need the image to be fit reasonably into the limited dynamic range. Unless you prepare your stuff for HDR presentation, it does not make much difference if max value is 10 or 1000, they both will most probably be clamped for presentation. For this reason (and the fact that your monitor does not like overbright values either) it is sensible to keep most color data values around 0.0-1.0 range and have a clamp value that has noticeable effect (otherwise why clamp at all?). Working in range 0.0-1000.0 with clamp at 10000 is essentially same as working in 0.0-1.0 with clamp 10 but it is more uncomfortable because you have to scale the output values to see anything meaningful on monitor.

Real differences between clamped and non-clamped images come for example in compositing where blurring the non-clamped image can give noticeably different result due to very bright pixels. Before blurring images seem to be identical, but after they are very different.

For a slider the range of 0.0-10.0 would be nice I think, with the option to punch in higher numbers if neede. Personally I usually use values between 3-5 for direct and 1-2 for indirect.

In my renders, I’ve never had to clamp over 1. And from what I understand, clamping over 1 (or maybe it was 2) tends to make an image “darker”, reducing the overall light level in the scene.

Clamping works a little counter-intuitively: The higher the clamping value, the less brightness gets cut away.
Clamping is not “cut by the specified value”, but “cut to the specified value”.

Clamping values should therefore imho always be either 0 (= off) or >1 (the higher he better). With clamping values <1 you’re even cutting into the minimal brightness range of LDR images.

Grady has it it a bit backwards there, as Ikari explains you rarely would ever go below 1 on indirect. If however you are desperate for a noise free, low sample, render and are willing to have many of your levels shot, clamping indirect at low values will clean up the render very fast. Here is a low light and bright light test I did, all renders are at 500 samples.


Evidently Campbell moved the question to a thread so thanks, Campbell.

First off I care not one wit what Blender is doing under the hood. For those who do it must be interesting but I simply don’t care. The ideal 3d program to me would be the one most intuitive to a traditional graphics artist. Hence the comment about a slider where the developers picked the range. Thanks kesonmis since you explained that much better.

Photox thanks and I stand corrected since evidently a clamp of 7 is doing something. My view is often clouded by attempting to animate with a mid tier machine. What a damn tap dance that is. Thanks to everyone who has posted. By the way Photox has an amazing entry in the Steampunk competition. Best of luck once again.