Is the curve a representation of a function which describes y = f(x) where x is the input as composite or R,G.B channel and y is the result where x and y are in the range 0..255?

In case that is true, how does the vertical graph (D) perform a posterization as described in the Documentation on RGB curves ?

enter image description here

A) Lighten B) Negative C) Decrease Contrast D) Posterize


The coordinate range of the RGB curves is [0, 1]. The RGB values in Blender are always in [0, 1] range, where 0 is is no intensity and 1 is full intesity of the color channel. Otherwise you are correct. The curve represents a function which maps input values (x axis) to output values (y axis).

The vertical curve (D) does the following: It manipulates the combined color values (note that the C is checked at the top of the RGB Curves window). This means the curve is applied to all channels individually. It maps all R, G and B values that are smaller than 0.5 to 0 and all that are greater than 0.5 to 1. So the color (0.8, 0.6, 0.2), a light ochre, would be mapped to (1.0, 1.0, 0.0) which is pure yellow.
If you apply this curve to an image the R, G and B values of every pixel are mapped to either 0 or 1, resulting in 2³ = 8 possible colors. Reducing the number of possible colors in an image is often called posterization.
If you want posterization with more than eight colors you could add more steps to the curve. Here is an example of a curve that will map an image to 3³ = 27 colors.
enter image description here

Apart from the combined channel you can of course also manipulate the separate R G and B channels by clicking on the on the corresponding button on top of the RGB Curves window and modifying the curves of the channels. The curves of the separate channels are applied AFTER the curve of the combined channel.

  • $\begingroup$ Thanks now I understand the 'crazy' results better, could it be that HDR images have an extended value range e.g 0..10? $\endgroup$ – stacker Jun 1 '14 at 20:31
  • $\begingroup$ I am not sure how blender handles HDR images, but I think if you use them as an object-texture the HDR images will be tonemapped to a range of [0, 1]. And AFAIK the output of the RGB curve node is also always [0, 1]. There are some clipping options when you click the white dot above the small window which displays the curve (between the wrench and the X), but they only seem to affect the range in which you can place control the points of the curve. $\endgroup$ – maddin45 Jun 1 '14 at 20:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.