Color adjustments are essential to give a scene a certain feel, both for static images and movies. For images, beginners might use the filters that e.g. Instagram provide, professional photographers use tools like Adobe Lightroom and colorists for cinema use software like DaVinci Resolve. The iconic greenish hues of the Matrix franchise or the typical, desaturated and gritty „blockbuster“ style of Nolan’s Batman trilogy make those movies recognizable by their colors alone.
Game developers nowadays even use these tools to generate a look and feed it into the game.
Color grading in ReShade is often used to give games a certain style, recreate a look from a popular movie or reverse an existing color effect:
Many shaders for ReShade are designed to apply specific color adjustments similar to industry standard software like Adobe Lightroom or DaVinci Resolve. A common approach in ReShade presets is to use many of these color adjustments at once to achieve their look.
Here’s why this is bad and why using ReGrade for color grading is better:
ReGrade is fast
Each ReShade effect has a base performance overhead. Applying several color transforms split into separate shaders has a much higher performance cost than performing them in a single shader. ReGrade costs performance once.
ReGrade is also heavily optimized, leveraging many tricks to get more performance out of an otherwise straightforward process.
As a result, ReGrade costs almost as little as a simple passthrough effect.
ReGrade is nondestructive
The colors on your screen have a limited data precision. While a shader is processing them, it operates in a much higher precision, and rounds them back down (“quantizing”) when outputting to the screen.
Applying several consecutive color transforms in separate shaders can reduce the dynamic range drastically. The image might appear posterized, gradients become blocky.
Since ReGrade performs all color transforms in high precision format at once, you get pristine colors.
ReGrade is efficient
The results from several color grading operations is highly dependent on their order. With many effects enabled at once, a preset becomes hard to manage and effect interactions quickly become unpredictable. Preset authors transition from adjusting already active effects to counteracting by adding more on top. Using a single effect to manage colors prevents this.
With ReGrade, all your color management is done in a single location, making it efficient and easy.
Since the amount of tweaking parameters is very high and each color transform closely follows industry reference (read: if you know Lightroom or anything similar, you’ll feel right at home), this section will explain the general workflow only.
ReGrade has two GUI components. In the first segment, you can select all the different color operations that you want to enable. All enabled effects are processed top to bottom, you can also leave spaces in between empty. Enabling the same effect twice is possible but not recommended as they are not separately tweakable.
In the example, Lift Gamma Gain is selected for Slot 1. We may now tweak the parameters for Lift Gamma Gain in the section below. If we wanted to compare the impact of a single color operation without toggling the entire effect off, we can bypass it directly.
A good practice is to settle for a sensible order first. It is common to equalize the image first so it looks natural, then applying a specific style to it. But you do you.
To achieve realistic images, video games need to simulate the journey of light in the scene, through the camera lens into the sensor and finally in the editing software. Since bloom/glow and vignetting are the last thing to happen in the camera before the post processing it only makes sense to allow it to happen directly before ReGrade, right?
That’s why ReGrade is designed to link with Solaris, a bloom/exposure shader. Solaris handles the HDR exposure and glow, passes its HDR color data directly into ReGrade which then converts it into the visible range again, color grades it and finally outputs a dithered, pristine image.
To enable this mode, set ENABLE_REGRADE_SOLARIS_PARITY to 1 in the preprocessor definitions at the bottom of the GUI settings. This will bypass any effect in between Solaris and ReGrade and both have to be enabled.