Search
Start typing to search...

Tone Mapping Methods

Author:

Introduction

In this documentation, we will talk about what Tone Mapping is and how different methods work in Aximmetry.

Tone Mapping

Tone Mapping is an operation, during which we map a range of color values into another range. Our motivation for this is to display colors on a screen, that has a limited color range.
For example, if we have an HDR image, in which the values go from 0 to 5 and we want to show it on a normal display (which can show values from 0 to 1), we need to move the values into the 0 to 1 range somehow.

For example, a trivial way is to clamp all values at 1, so values in the 1 to 5 range will be displayed as 1.
This has the disadvantage of losing information: you could have a white cat in the image with very bright colors (almost all values above 1), and the resulting image would only contain a white patch.

Tone Mapper module

In Aximmetry tone mapping is done using the Tone Mapper module:

Tone Mapper is part of each Renderer used for Aximmetry scenes by default.

Tone Mapping Operators

Tone Mapping operators define how the mapping of values from one range to another happens.
The best way to think of the operators is in curves, where on the X axis are the original values and on the Y axis are the values the operator will output.

Let's take another trivial example for our problem above: use a y = x/5 function as our Tone Mapping operator.

This means, that to get the result of the Tone Mapping, we need to divide all values by 5.

By doing this, we will be able to see all colors in the resulting image (if the original was in the 0 to 5 range).
This will come with the disadvantage, that the image will most likely look different than it is meant to be (our white cat from the previous example will look gray) and colors close to each other will be harder to tell apart since their difference in value will be 1/5th of the original.
If we also store the new values in a format, that doesn't support the value difference of 1/5th of the original we will permanently lose the small differences in color values.
For example, if we use 0-255 integer values for the 0-1 range, we won't be able to store the 39.4 value, only 39 or 40.

Most Tone Mapping operators are special parameterized curves designed to maintain the artistic intent of the original image while creating a lower color-range representation of it.
This can be done thanks to the characteristics of the human eye:
Our eyes are way more sensitive to differences in dark colors than differences in bright colors, so we can create tone-mapping curves that will maintain the perceived brightness of the image while mapping to a lower range.

Aximmetry offers different Tone Mapping operators. 
You can select which one you would like to use in the Tone Mapper modules Method property:

Choosing between them is up to you but we will give a breakdown of how each of them works.

Reinhard

The Reinhard operator is a simple one, but it works well in most cases.

It has 1 parameter, called White Lum, which describes how bright the brightest point of the image is.

ACES

The ACES tone mapping curve was designed to work with ACES color space and support the range of colors that a camera can be expected to record.
ACES (Academy Color Encoding System) is higher in contrast and has a greater effect on color hue and saturation. ACES is also known as Filmic.

It has the disadvantage that it cannot be adjusted to artistic intent since it is a static curve (and as such has no parameters).

Hable

The Hable tone mapping curve is a very powerful tool at the cost of complexity.

It was designed to allow in-depth customization of the curve with its parameters while maintaining smooth changes between colors.
Its power comes with a great drawback: it has a lot of parameters and it requires a deep understanding of what they do to find the right values for each of them.

The curve is divided into 3 parts: a Toe, a Midsection, and a Shoulder.

  • The Toe is for the shadows, controlled by 2 parameters:
    • Toe Length: adjusts up to what values are colors considered to be shadows.
    • Toe Strength: how much detail should be in the shadows (the more detail is in the shadows, the less detail will be in mid-tones and highlights).

  • The Midsection is for mid-tones, the colors that should be preserved as close to the original as possible.
    • They don't have any parameters but are instead controlled by the Toe and the Shoulder.

  • The Shoulder is for highlights, controlled by 3 parameters:
    • Shoulder Length: up to what values should the colors be represented in the final image (in F stops from 1).
    • Shoulder Strength: controls the transition between mid-tones and highlights.
    • Shoulder Angle: adjusts how much detail should the highlights preserve.

  • There is also a Gamma parameter, which controls the gamma of output colors.

Advanced

The Advanced Tone mapping curve was designed by the experts at Aximmetry.

Designed to give you the freedom you need without a steep learning curve. It only has 2 parameters that can be easily
adjusted to suit your case:

  • The Midpoint parameter affects where the important details of your image (or video) are, so they will stay close to their original colors.
  • The Contrast parameter changes how well-defined the differences in shadows and highlights in your image will be.
Article content

Loading
Close
Loading spinner icon
1/10