This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

Color Correction

This section describes settings for color correction of the scene.

Scene Color Settings

Tonemapper#

The tone mapping provides better image quality by remapping high dynamic range (HDR) colors into a range suitable for mediums with low dynamic range (LDR), like LCD or CRT screens. Its most common purpose is to make an image with a low dynamic range appear to have a higher range of colors providing a more dynamic and realistic effect. It lightens the darkest image regions and makes the lightest regions darker.

When using an HDR camera, always apply tonemapping, otherwise color intensity values exceeding 1 will be clamped at 1, altering the luminance balance of the scene.

Tonemapper settings
Tonemapper The value indicating if tone mapping is enabled. Enabled by default.
Console access: render_tonemapper (API control)
Tonemapper Mode The mode of tone mapping. One of the following values:
  • Filmic
  • ACES (by default)
  • ACES with Reinhard
  • Reinhard
  • Reinhard Luma-Based

Console access: render_tonemapper_mode (API control)

Filmic#

Parameters described below represent John Hable's artist-friendly tonemapping curve, which is constructed by using the following formula:

  • A — Shoulder Scale
  • B — Linear Scale
  • C — Linear Angle
  • D — Toe Scale
  • E — Toe Numerator
  • F — Toe Denominator

Tone Mapping Curve

For more details about tone mapping curve construction see the article on Filmic Tonemapping with Piecewise Power Curves.

Shoulder Scale The Shoulder Strength tonemapping parameter value that is used to change bright values.
Range of values: [0.0f, 1.0f]. The default value is 0.2f.
Console access: render_filmic_shoulder_scale (API control)
Shoulder Scale = 0.2 (by default)
Shoulder Scale = 1
Linear Scale The Linear Strength tone mapping parameter value that is used to change gray values. The Linear Scale controls the length of the tone mapping curve linear part.
Range of values: [0.0f, 1.0f]. The default value is 0.3f.
Console access: render_filmic_linear_scale (API control)
Linear Scale = 0.3 (by default)
Linear Scale = 1
Linear Angle The Linear Angle tone mapping parameter value. This parameter controls the slope of the linear part of the tone mapping curve.
Range of values: [0.0f, 1.0f]. The default value is 1.0f.
Console access: render_filmic_linear_angle (API control)
Linear Angle = 0.10 (by default)
Linear Angle = 1
Toe Scale The Toe Scale tonemapping parameter value that is used to change dark values. The Toe Scale controls the slope of the tone mapping curve toe (the area of underexposure).
Range of values: [0.0f, 1.0f]. The default value is 0.2f.
Console access: render_filmic_toe_scale (API control)
Toe Scale = 0.20 (by default)
Toe Scale = 1
Toe Numerator The Toe Numerator tonemapping parameter value.
Range of values: [0.0f, 1.0f]. The default value is 0.01f.
Console access: render_filmic_toe_numerator (API control)
Toe Numerator = 0.01 (by default)
Toe Numerator = 0.08
Toe Denominator The Toe Denominator tonemapping parameter value.
Range of values: [0.0f, 1.0f]. The default value is 0.3f.
Console access: render_filmic_toe_denominator (API control)
Toe Denominator = 0.3 (by default)
Toe Denominator = 1
White Level The Linear White Point tonemapping parameter value, which is mapped as pure white in the resulting image.
Range of values: [0.0f, inf]. The default value is 1.0f.
Console access: render_filmic_white_level (API control)
White Level = 1.0 (by default)
White Level = 0.5
Saturation Recovery

The color saturation recovery value for the filmic tonemapper. Filmic tonemapper desaturates image colors in bright areas making them look grayish. This parameter enables you to recover initial color saturation in such areas. Higher values make colors more saturated:

  • 0.0f - standard filmic tonemapping, no saturation recovery is performed.
  • 1.0f - color saturation is recovered to the full extent.
Notice
When the 1.0f value is set specular highlights appear too saturated, so the recommended value is 0.75f (default)

Range of values: [0.0f, 1.0f]. The default value is 0.75f.
Console access: render_filmic_saturation_recovery (API control)
White Level = 1.0 (by default)
White Level = 0.5

ACES#

White Clip

The white clip parameter for the ACES operator. Controls the cut-off point for white.
Range of values: [0.0f, 10.0f]. The default value is 2.51f.
Console access: render_aces_white_clip (API control)

Toe

The toe parameter for the ACES operator. Controls the dark color. Higher values result in darker colors.
Range of values: [0.0f, 10.0f]. The default value is 0.03f.
Console access: render_aces_toe (API control)

Shoulder Angle

The shoulder angle parameter for the ACES operator. Controls how much overshoot should be added to the curve's shoulder.
Range of values: [0.0f, 10.0f]. The default value is 2.43f.
Console access: render_aces_shoulder_angle (API control)

Shoulder Strength

The shoulder strength parameter for the ACES operator. Controls the strength of the transition between the curve's midsection and the curve's shoulder.
Range of values: [0.0f, 10.0f]. The default value is 0.59f.
Console access: render_aces_shoulder_strength (API control)

Shoulder Length

The shoulder length parameter for the ACES operator. Controls the amount of f-stops to add to the dynamic range of the curve. Defines how much of the highlights the curve takes into account.
Range of values: [0.0f, 1.0f]. The default value is 0.59f.
Console access: render_aces_shoulder_length (API control)

Mix ACES With Reinhard#

Mix With Reinhard The ACES with Reinhard tonemapping operator contribution. If the value is closer to 0, then ACES prevails. Otherwise, when the value is closer to 1, the Reinhard has a grater impact.
Range of values: [0.0f, 1.0f]. The default value is 0.5f.
Console access: render_aces_with_reinhard_mix (API control)

Reinhard#

Contribution The Reinhard tonemapping operator contribution.

The value is calculated according to the following formula:

C / (1 + C)
It controls the overall contribution that the Reinhard operator makes to the final color grading of the image. The higher values result in more tonemapping contribution to the final image.
Range of values: [0.0f, 1.0f]. The default value is 1.0f.
Console access: render_reinhard_contribution (API control)

Reinhard Luma-Based#

Contribution The Reinhard Luma-Based tonemapping operator contribution. Controls the overall contribution that the Reinhard operator makes to the final color grading of the image. Higher values result in more tonemapping contribution to the final image.
Range of values: [0.0f, 1.0f]. The default value is 1.0f.
Console access: render_reinhard_luma_based_contribution (API control)

Auto White Balance#

White balance correction eliminates the discoloration in the final image due to certain colors in the scene having more intensity and/or a higher or lower color temperature. Adaptive automatic white balance correction ensures realistic coloration of your scenes in real-time mode.

Notice
To ensure the most natural look of your scene, adjust colors of light sources by setting color temperatures. In case of heavy high-contrast discoloration (e.g., too warm and too cold lights in a dark room), the final image may look unnatural.
White balance settings
White Balance The value indicating if automatic white balance correction is enabled. Enabled by default.
Console access: render_white_balance (API control)

Intensity The value of white balance correction intensity.
  • 0.0f - no white balance correction is performed.
  • higher values result in stronger correction.
Notice
Do not set too high values for night-time and dimly lit scenes, as it may lead to heavy color distortion making the scene look totally unnatural.

Range of values: [0.0f, 1.0f]. The default value is 0.3f.
Console access: render_white_balance_intensity (API control)
Adaptation Time The time period set for the camera to adjust white balance. During this time white balance correction is performed (0.0f - instant correction is to be used).
Notice
It is recommended to use lower values, when possible, to make correction process unnoticeable, otherwise it'll be slow and will catch user's eye. However, setting too low values may result in abrupt switching of colors as the camera moves. So, adjust this parameter carefully to make transition smoooth. You can set it equal to the Exposure Adaptation value.

Range of values: [0.0f, inf]. The default value is 1.0f.
Console access: render_white_balance_adaptation_time (API control)

Sharpness#

Sharpness The value indicating if the sharpening post-processing effect is enabled. Disabled by default.
Console access: render_sharpen (API control)
Sharpen Intensity The intensity of the sharpening effect.intensity of the sharpening effect. To use this option, sharpening post-processing effect should be enabled.
Range of values: [0.0f, inf]. The default value is 0.5f.
Console access: render_sharpen_intensity (API control)

Color Grading#

Brightness Correction of the overall scene brightness:
  • Positive values lighten the colors up to white.
  • Negative values darken the colors up to black.
Contrast Correction of the overall scene contrast:
  • Positive values increase the contrast.
  • Negative values decrease the contrast.
Gamma Correction of the overall scene gamma.
Fade Color The fade color for the scene on the screen. By gradually changing this value it is possible to create "fade in" and "fade out" effects depending on the w component of the given vector. For example, when the following vectors are passed the result will be:
  • vec4(1,1,1,1) - a fully white screen. Positive w results in additive blending.
  • vec4(0.5,0.5,0.5,1) - light colors on the screen.
  • vec4(1,0,0,1) - R channel for all screen colors is to its maximum; G and B without changes.
  • vec4(0,0,0,0) - there is no fading (no color alterations are done to the screen).
  • vec4(1,1,1,-1) - a fully black screen. Negative w results in scene colors * (1 - RGB), where RGB is the first three components of the passed vector.
  • vec4(0.5,0.5,0.5,-1) - dark colors on the screen.

vec4_zero - default value (white)
Console access: render_fade_color (API control)
White Level White level of the scene.
3D LUT Texture The loading, viewing, or clearing of the Lookup Table texture for color transformation.

Color Correction by Curves#

Color Correction Tonal range and tone response of the final image. The horizontal input color values are mapped to the vertical output values based on curves for Red, Green and Blue channels. By adjusting all three channels at once, you control the luminance of the final image.
Color correction curves
Preserve Saturation Preserve initial scene color saturation after applying color correction.
Saturation Correction Correction curve of the overall scene saturation. The input luminance values are mapped to the vertical saturation values:
  • The higher the value, the more saturated and vibrant the colors are.
  • The lower the value, the duller and more colorless the colors are.

Saturation curve
Control the saturation of shadows by adjusting the values on the left, highlights - on the right.

Saturation and Hue#

Saturation per Color Saturation fine-adjustment for 12 major colors of the spectre.

Saturation adjustment
Hue per Color Hue (color shift) fine-adjustment for 12 major colors of the spectre.
Hue adjustment

Color Correction LUT#

Color Correction LUT (Lookup Texture) is an optimized way of performing color grading in a post effect. Instead of tweaking individual color grading parameters, only a single texture is used to produce the corrected image. The lookup is performed by using the original image color as a vector to address the lookup texture.

One of the most common applications of lookup tables is to use them to see how images look in different media, such as TV/video or film, which have different color capabilities. Using a lookup table designed to mimic a certain display medium gives a much better idea what your current work will look like after it’s transferred to that medium.

Advantages of using a Color correction LUT include:

  • Better performance — realtime computation is replaced by a simple array indexing operation.
  • More professional workflow opportunities, where all color transforms can be defined using professional image editing software (such as Photoshop or GIMP), which provides a more precise result.

Simple scene with neutral color correction applied.

Same scene using the lookup texture with shadows, highlights and vibrance applied.
Notice
Various visual effects can be created by changing the color correction LUT dynamically in realtime.

Lookup Texture Requirements#

The 2D texture representation must be laid out in a way that it represents an unwrapped volume texture (as an image sequence of "depth slices").

A 1024 x 32 texture, representing a 32x32x32 color LUT.

Workflow Example#

  1. Generate a default lookup texture by clicking the button (Save texture) right to the LUT texture field and saving it as a TGA file (by selecting it in the Typefield).
  2. Take a screenshot of your scene.
  3. Import your screenshot into a graphics editor (e.g., Photoshop or GIMP) and perform all necessary image correction operations (brightness, contrast, etc.) to achieve a desired look.
  4. Import your generated default lookup texture into the graphics editor and perform the same operations as for the scene screenshot. Save the modified lookup texture as a new LUT.
  5. In Render Settings -> Color -> LUT texture, select you new texture.

Now your scene in UnigineEditor looks exactly as in the graphics editor!

Last update: 2022-10-12
Build: ()