YOUR ACCOUNT

What are HDR colors?

HDR is an abbreviation for “high dynamic range”. In Filter Forge, a HDR color is a color whose RGB channel values are not limited by the 0…1 (or 0…255) range – these colors can have unlimited RGB channel values, from tiny fractions to trillions, positive or negative. The Alpha (opacity) channel of a color always remains in the low dynamic range even for HDR colors, i.e. it is still limited to the 0…1 (or 0…255 range).

HDR ColorsHDR Colors

Starting with version 2.0, Filter Forge officially supports HDR colors across its entire rendering pipeline, from input images through components to rendered results – you can load an HDR image into Filter Forge, process it with HDR-supporting components, and save the final result that preserves HDR colors.

What are the benefits of HDR colors?

There are three main reasons behind the introduction of HDR colors into Filter Forge:

How to select a HDR color in the Color Picker?

You can enter HDR colors into any color swatch that supports HDR colors. You can check if a color swatch supports HDR colors by looking at the HDR checkbox in its Color Picker – if the checkbox is enabled, the swatch supports HDR colors:

Mixed-sign HDR colorsMixed-sign HDR colors

In the HDR mode, the sliders for RGB and brightness turn into edit boxes allowing you to enter large floating-point numbers, along with their sign. RGB channels in HDR mode can be negative or positive independently of each other. When the RGB channels have mixed signs (i.e. some channels positive, some negative), the color plane, the hue bar and the HSB sliders in the Color Picker are disabled, but you can still enter the RGB values manually:

Mixed-sign HDR colorsMixed-sign HDR colors

How to identify HDR-supporting components?

Many components, including familiar operations such as Blur, High Pass, Blend, Levels and Perlin Noise, have inputs that accept HDR colors. These inputs have a slight yellow outline around their connection slot:

HDR Inputs

Components that can output HDR colors are marked with a slight yellow streak near their output triangle:

HDR Output

HDR-supporting components can be freely interconnected with LDR components. However, when an HDR component is connected to a non-HDR input, the RGB values coming to that input will be clipped to fit the 0…1 range.

How HDR colors are shown in the Preview?

HDR-colored pixels will get their RGB channel values clipped into the LDR range when shown the Preview (both in the main window and the Filter Editor). The clipping affects the displayed color only – internally, the RGB channels preserve their HDR values and signs. You can see the actual, unclipped RGB channel values of pixels shown in the preview by using the Color Inspector.

How color swatches display HDR colors?

While HDR colors cannot be displayed on a LDR display device such as your monitor without first performing tone mapping on them, Filter Forge does have a special way of displaying HDR colors in the color swatches. This display method was designed to give you an idea about the color – more specifically, about its hue, saturation and brightness. Here's how it works:

RGB ranges of 0…1 and 0…255 – what's the difference?

Numeric ranges of RGB channel values in the Color Picker are a potential source of confusion. When the HDR checkbox is turned off, RGB channels have the range of 0…255, but when you turn the HDR checkbox on, the RGB values suddenly change to floating-point numbers within the 0…1 range. Here's why it happens.

Historically, RGB channels in photo editing and computer graphics software had the range of 0 to 255, which was chosen by software authors because the number 255 can be represented by one byte. This range has become a standard convention for representing RGB channel values in software interfaces.

Despite the fact that all colors in Filter Forge are internally represented by floating-point numbers, it also conformed to this convention to avoid confusing users. Filter Forge uses the 0…255 range for display purposes only – in its internal representation of RGB channel values, the display range of 0…255 corresponds to a range of 0…1. For example, a color displayed as R=128.5, G=128.5, B=128.5 will be internally represented in Filter Forge as R=0.5, G=0.5, B=0.5.

When we designed the HDR mode for the Color Picker, we decided to keep the familiar display range of 0…255 for the LDR mode, and use the range of 0…1 for the HDR mode only. This way, the Color Picker doesn’t confuse the majority of users who don’t need the new HDR colors, without limiting advanced users who prefer the display range of 0…1.

Here's an example table showing some colors in both HDR and LDR modes. Note that the both HDR and LDR colors for the first three rows are identical, despite the different display ranges of their RGB channels:

Color in HDR mode Its equivalent in LDR mode
R=0, G=0, B=0 R=0, G=0, B=0  R=0, G=0, B=0 R=0, G=0, B=0
R=128.5, G=128.5, B=128.5 R=0.5, G=0.5, B=0.5 R=128.5, G=128.5, B=128.5  R=128.5, G=128.5, B=128.5
R=1, G=1, B=1 R=1, G=1, B=1 R=255, G=255 and B=255 R=255, G=255 and B=255
R=-1, G=-2, B=-3 R=-1, G=-2, B=-3 n/a Colors with negative RGB channels don’t have LDR equivalents
R=3, G=4, B=5 R=3, G=4, B=5 n/a Colors with RGB channels higher than 1 don’t have LDR equivalents

This difference between the actual rage and display range is crucial for understanding RGB Math components. See How Math Components Work for more information.

Can I perform mathematical operations on HDR colors?

Yes. Filter Forge includes a number of RGB Math components (such as Add, Multiply, Sine, Power, Root etc.) that let you perform channel-wise mathematical operations on colors, treating their RGB channels as unlimited signed floating-point numbers. You can literally enter numbers like -1200 or 0.00032 or 750000 into math components (via the RGB channels in the color picker in the HDR mode), and the math components will treat these numbers exactly as your pocket calculator would. For more information, see How Math Components Work.

How an HDR image is saved to a file?

When the final output image rendered by Filter Forge has pixels with colors exceeding the range of 0…1 (or 0…255), the RGB channels for those pixels is saved into file unclamped, assuming that the file format the image is being saved to supports HDR colors. If a file format supports positive channel values only, the negative RGB values will be clipped to zero. Here’s the list of file formats that support HDR colors:

When Filter Forge is called from a host application as a plugin, HDR colors are preserved correctly only if the source image has the correct pixel format. In Adobe Photoshop, the best format for preserving HDR colors is '32-Bit/Channel', however, Photoshop and other host applications may display HDR colors incorrectly, especially when the RGB channels have negative or mixed signs.